Pilha (Stack)
Definição
Uma Pilha (Stack) é uma estrutura de dados linear que segue o princípio LIFO — Last In, First Out (“último a entrar, primeiro a sair”).
Os elementos são sempre inseridos e removidos do topo. Funciona como uma pilha de pratos: só é possível retirar o item que está por cima, sem mexer nos de baixo.
Por que usar
Pilhas são úteis quando se deseja:
- Reverter a ordem de execução ou de dados;
- Controlar contexto de execução (ex: chamadas de função);
- Armazenar ações temporárias com possibilidade de desfazer;
Casos comuns de uso:
- Desfazer ações (ex: em editores de texto);
- Avaliação de expressões matemáticas (ex: notação pós-fixa);
- Controle de chamadas de função (call stack);
- Algoritmos de busca em profundidade (DFS).
Exemplo prático (Python)
pilha = []
# Inserir elementos (push)
pilha.append("A")
pilha.append("B")
pilha.append("C")
# Remover o topo (pop)
topo = pilha.pop()
print(topo) # Saída: C
# Estado atual da pilha
print(pilha) # Saída: ['A', 'B']