Considere a estrutura de dados do tipo pilha. Se a pilha est...

Próximas questões
Com base no mesmo assunto
Q3056086 Algoritmos e Estrutura de Dados

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

Alternativas

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