Módulo 2 - Pilhas: a estrutura em que o último entra e sai primeiro

Empilhar, desempilhar e espiar o topo

8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 12/07/2026

O que você vai aprender

  • Usar as operações empilhar, desempilhar e espiar o topo.
  • Entender que todas as operações mexem apenas no topo da pilha.
  • Rastrear o conteúdo da pilha ao longo de uma sequência de operações.
  • Reconhecer o perigo de desempilhar de uma pilha vazia.

Três operações, sempre no topo

Uma das coisas que tornam a pilha agradável de usar é o quão poucas operações ela tem. Você não precisa decorar dezenas de comandos. São basicamente três. Empilhar recebe um valor e o coloca por cima de tudo, virando o novo topo. Desempilhar faz o inverso: tira o item que está no topo e te entrega esse valor, deixando à mostra o item que estava logo abaixo. Espiar o topo é a operação mais discreta, ela apenas te conta qual é o item de cima, sem mexer em nada. Todas as três trabalham no mesmo ponto, o topo, e é essa disciplina que preserva a ordem LIFO.

Repare na diferença sutil entre desempilhar e espiar, porque ela confunde muita gente. Desempilhar altera a pilha: depois dele, a pilha tem um item a menos. Espiar não altera nada: a pilha continua igual, você só deu uma olhada em quem estava por cima. Na prática, é a diferença entre tirar o prato de cima da pilha e apenas olhar qual é o prato de cima sem encostar nele. Saber quando você quer só consultar e quando quer de fato retirar evita bugs sutis, principalmente em algoritmos que precisam decidir com base no topo antes de removê-lo.

pilha <- []
empilhar(pilha, 5)      // pilha: [5]
empilhar(pilha, 8)      // pilha: [5, 8]
empilhar(pilha, 2)      // pilha: [5, 8, 2]
escreva(topo(pilha))    // espia e mostra 2, a pilha continua [5, 8, 2]
x <- desempilhar(pilha) // x recebe 2, pilha: [5, 8]
escreva(x)              // mostra 2
escreva(topo(pilha))    // agora o topo e 8

Empilhar cresce a pilha; espiar (topo) só consulta; desempilhar retira e devolve o item de cima.

Duas colunas comparando as operações. À esquerda, empilhar (push): uma pilha com os itens 5 e 8 recebe o item 2 por cima, que vira o novo topo. À direita, desempilhar (pop): a mesma pilha com 5, 8 e 2 tem o 2 retirado do topo e devolvido, deixando o 8 como novo topo. Setas indicam que ambas as operações agem só no topo.
Empilhar adiciona no topo; desempilhar retira do topo e devolve o valor. As duas mexem apenas na ponta de cima.

Rastreando o conteúdo passo a passo

A melhor forma de dominar a pilha é fazer o teste de mesa: acompanhar, operação por operação, o que sobra dentro dela. Comece com a pilha vazia e anote o estado depois de cada comando. Cada empilhar acrescenta um item no topo; cada desempilhar remove o do topo. Como a ordem é sempre inversa, a sequência de saídas espelha, de trás para frente, a sequência de entradas que ainda estão na pilha. Fazer esse rastreio à mão em papel, ou de cabeça, é o que separa quem entende a estrutura de quem só decorou a definição.

🎮 Jogo da aula

Qual valor sai no topo?

Acompanhe a pilha operação por operação, do vazio até o fim, e descubra o que o programa escreve.

pilha <- []
empilhar(pilha, 3)
empilhar(pilha, 7)
empilhar(pilha, 1)
desempilhar(pilha)
empilhar(pilha, 9)
escreva(topo(pilha))

O perigo de desempilhar do vazio

Existe um erro que todo mundo comete pelo menos uma vez: tentar desempilhar de uma pilha que já está vazia. Se não há nenhum item, não há topo para retirar, e o programa quebra ou devolve um valor sem sentido. É o equivalente a tentar pegar um prato de uma pilha inexistente. A defesa é simples e deve virar hábito: antes de desempilhar, cheque se a pilha tem pelo menos um item. Muitas linguagens oferecem uma operação para saber se a pilha está vazia, e usá-la antes de cada retirada evita a maioria dos acidentes com pilhas.

Teste rápido

Qual a diferença entre desempilhar e espiar o topo de uma pilha?

Perguntas frequentes

Empilhar e desempilhar têm outros nomes?
Sim. Em inglês, empilhar é push e desempilhar é pop, nomes que aparecem em quase todas as linguagens. Espiar o topo costuma se chamar peek ou top. No pseudocódigo usamos os termos em português, mas é bom reconhecer os nomes originais, porque você vai encontrá-los na documentação e nos códigos reais.
Espiar o topo muda a pilha?
Não. Espiar apenas mostra qual é o item de cima, sem retirá-lo. A pilha continua exatamente igual depois de um peek. Só o desempilhar remove de fato o item do topo. Confundir os dois leva a bugs, porque você acha que consultou mas na verdade retirou, ou o contrário.
Posso empilhar tipos diferentes na mesma pilha?
Depende da linguagem. Em pseudocódigo e em linguagens mais flexíveis, sim, você pode empilhar números e textos juntos. Em linguagens com tipos rígidos, a pilha costuma guardar um tipo só. Na dúvida, mantenha a pilha com itens do mesmo tipo, o que torna o código mais claro e menos sujeito a erro.
Quanto custa empilhar e desempilhar?
Pouquíssimo. Como as duas operações mexem só no topo, elas são muito rápidas e não dependem do tamanho da pilha. Adicionar ou remover é sempre um trabalho fixo, seja a pilha pequena ou enorme. Essa eficiência constante é uma das razões de a pilha ser tão usada em algoritmos.
O que acontece se eu desempilhar de uma pilha vazia?
Não há item para retirar, então o programa costuma gerar um erro ou devolver um valor inválido. É por isso que se recomenda checar se a pilha está vazia antes de desempilhar. Essa checagem é parte natural de muitos algoritmos que usam pilha e evita quebras inesperadas.
Como sei quantos itens tem a pilha?
A maioria das implementações oferece uma forma de consultar o tamanho da pilha, sem precisar desempilhar tudo. No pseudocódigo, pense na quantidade de itens acumulados pelos empilhar menos os desempilhar. Saber o tamanho ajuda, mas lembre que você ainda só pode acessar o item do topo.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.