Índice >
Pilha
Instituto de Ciências Matemáticas de São Carlos
Departamento de Computação e Estatística
SCE182 - Algoritmos e Estruturas de Dados 1
Profs. Resp.: Graça Pimentel e Maria Cristina
Pilha
Pilhas são listas onde a inserção de um novo
item ou a remoção de um item já existente se dá
em uma única extremidade, no topo.
Pilha vazia
Insere(A)
Insere(B)
Retira( )=B
Insere(C)
Retira( )=C
Retira( )=A
Definição
Dada uma pilha P=( a(1), a(2), ..., a(n) ), dizemos que a(1) é o
elemento da base da pilha; a(n) é o elemento topo da pilha; e a(i+1)
está acima de a(i).
Pilhas são também conhecidas como listas LIFO (last
in first out).
Operações Associadas:
1. criar (P) - criar uma pilha P vazia
2. inserir (x, P) - insere x no topo de P (empilha): push(x,P)
3. vazia (P) - testa se P está vazia
4. topo (P) - acessa o elemento do topo da pilha (sem eliminar)
5. elimina (P) - elimina o elemento do topo de P (desempilha): pop(P)
6. destruir(P) - destrói a estrutura e libera o espaço
ocupado por ela.
-> Fazer
a Definição do TAD pilha.
Implementação de Pilhas
Como lista Sequencial ou Encadeada ?
No caso geral de listas ordenadas, a maior vantagem da alocação
encadeada sobre a sequencial - se a memória não for problema
- é a eliminação de deslocamentos na inserção
ou eliminação dos elementos. No caso das pilhas, essas operações
de deslocamento não ocorrem.
Portanto, podemos dizer que a alocação
sequencial é mais vantajosa na maioria das vezes.
Um outro modo de se implementar pode ser feito utilizando pilhas
múltiplas.
Aplicação
Índice