Considere a estrutura de dados do tipo pilha. Se a pilha est...
Considere a estrutura de dados do tipo pilha. Se a pilha estiver vazia então topo = λ, sabe-se que pt é um ponteiro. Analise o algoritmo abaixo
se topo ≠ λ então
pt := topo
topo := topo ↑.prox
valor- recuperado := pt ↑.info
desocupar(pt)
senão underflow
O algoritmo descreve a operação de
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa C é a correta. O algoritmo descrito realiza a operação de remoção na pilha, também conhecida como pop.
Vamos analisar o algoritmo para entender melhor. Uma pilha é uma estrutura de dados que segue a regra "Último a Entrar, Primeiro a Sair" (LIFO - Last In, First Out). Isso significa que o último elemento inserido é o primeiro a ser removido. A operação de remoção é frequentemente chamada de pop, enquanto a inserção é chamada de push.
No algoritmo apresentado, a condição inicial verifica se a pilha não está vazia (topo ≠ λ
). Este é um passo crucial em uma operação de remoção para evitar o problema chamado "underflow", que ocorre quando tentamos remover um elemento de uma pilha vazia.
Se a pilha não está vazia, o ponteiro pt
é utilizado para armazenar o elemento do topo da pilha. Em seguida, o topo da pilha é atualizado para o próximo elemento (topo := topo ↑.prox
). O valor recuperado é então capturado (valor-recuperado := pt ↑.info
) e o espaço ocupado pelo nó é liberado (desocupar(pt)
).
Agora, vamos examinar por que as outras alternativas estão incorretas:
- A - Inserção na pilha: Esta operação seria caracterizada pelo aumento da pilha com um novo elemento no topo, o que não está acontecendo aqui.
- B - Consulta da pilha: A consulta geralmente implica verificar ou acessar o elemento no topo sem removê-lo. Aqui, estamos efetivamente removendo o elemento.
- D - Estouro por overflow: Overflow ocorre quando tentamos adicionar um elemento a uma pilha que já está cheia, o oposto do que este algoritmo trata.
- E - Estouro por underflow: Esta situação é verificada no algoritmo, mas não é a operação em si; underflow é apenas uma condição que é tratada ao tentar remover de uma pilha vazia.
Espero que esta explicação tenha clareado o funcionamento desta operação de pilhas. Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo