Estrutura de Dados
Questão A
Uma PILHA é uma estrutura de dados “linear” na qual os elementos são inseridos por uma de suas extremidades (normalmente conhecida como “o topo”) e são removidos pela mesma.
Temos muitos exemplos de uso de pilhas no mundo real, como pilha de pratos numa cozinha, pilha de caixas num deposito, entre outras.
O que deve ser realizado na questão:
Esta questão visa verificar sua habilidade de fazer um teste de mesa para pilhas. No teste de mesa, devemos realizar as operações nós mesmos, com papel e caneta; ou no editor de texto, neste caso.
Faça uma sequencia de 15 operações de inserção e remoção de elementos, aleatoriamente, numa única pilha. Mostre o estado da pilha a cada passo. Se a pilha ficar vazia, não tem problema; apenas deixe isto indicado.
Por exemplo, se a sua pilha for de nomes:..........
Soluções para a tarefa
Oi!
Para te ajudar na criação do algoritmo, abaixo segue um algoritmo que faz uma sequencia de 15 operações de inserção e remoção de elementos, aleatoriamente, numa única pilha, conforme pede o enunciado.
--> Você pode fazer suas modificações, caso ache pertinente.
record Nodo {
data //informação a ser armazenada no nod
próximo // referência ao próximo nodo; null para o último nodo
}
record Stack {
Node stackPointer // ponteiro para o nodo do topo; valor null para uma pilha vazia
}
function push(Stack stack, Element element) { // insere elemento em uma pilha
new(newNode) // Allocate memory to hold new node
newNode.data := element
newNode.next := stack.stackPointer
stack.stackPointer := newNode
}
function pop(Stack stack) { // retira o elemento do topo e retorna o nodo do topo agora
node := stack.stackPointer
stack.stackPointer := node.next
element := node.data
return element
}
function top(Stack stack) { // retorna o nodo no top
return stack.stackPointer.data
}
function length(Stack stack) { // retorna a quantidade de nodos na pilha
length := 0
node := stack.stackPointer
while node not null {
length := length + 1
node := node.next
}
return length
}