Escolar Documentos
Profissional Documentos
Cultura Documentos
Pilhas
Pilha Estática
– LIFO (Last In First Out) – “Último que Entra Primeiro que Saí”
Pilha Estática
• Operações Básicas
topo : -1
0 1 2 3 4 5 6 7 8 9
L=
topo : -1
0 1 2 3 4 5 6 7 8 9
L=
topo : 0
0 1 2 3 4 5 6 7 8 9
L= 78
topo : 0
0 1 2 3 4 5 6 7 8 9
L= 78
topo : 1
0 1 2 3 4 5 6 7 8 9
L= 78 92
topo : 1
0 1 2 3 4 5 6 7 8 9
L= 78 92
topo : 2
0 1 2 3 4 5 6 7 8 9
L= 78 92 81
topo : 2
0 1 2 3 4 5 6 7 8 9
L= 78 92 81
topo : 3
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45
topo : 3
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45
topo : 4
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45 36
topo : 4
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45 36
topo : 4
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45 36
Item guardado: 36
Se a pilha não estiver vazia
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 3
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45
Item guardado: 36
Se a pilha não estiver vazia
Portanto:
Item a ser removido: 36 • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 3
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45
Item guardado:
Se a pilha não estiver vazia
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 3
0 1 2 3 4 5 6 7 8 9
L= 78 92 81 45
Item guardado: 45
Se a pilha não estiver vazia Portanto:
• Guardar o elemento que está em topo.
Item a ser removido: ??? • Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 2
0 1 2 3 4 5 6 7 8 9
L= 78 92 81
Item guardado: 45
Se a pilha não estiver vazia Portanto:
• Guardar o elemento que está em topo.
Item a ser removido: 45 • Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 2
0 1 2 3 4 5 6 7 8 9
L= 78 92 81
Item guardado:
Se a pilha não estiver vazia
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 2
0 1 2 3 4 5 6 7 8 9
L= 78 92 81
Item guardado: 81
Se a pilha não estiver vazia
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 1
0 1 2 3 4 5 6 7 8 9
L= 78 92
Item guardado: 81
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: 81 • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 1
0 1 2 3 4 5 6 7 8 9
L= 78 92
Item guardado:
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 1
0 1 2 3 4 5 6 7 8 9
L= 78 92
Item guardado: 92
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 0
0 1 2 3 4 5 6 7 8 9
L= 78
Item guardado: 92
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: 92 • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 0
0 1 2 3 4 5 6 7 8 9
L= 78
Item guardado:
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : 0
0 1 2 3 4 5 6 7 8 9
L= 78
Item guardado: 78
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : -1
0 1 2 3 4 5 6 7 8 9
L=
Item guardado: 78
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: 78 • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
• Devolver o valor guardado
Pilha Estática
• Funcionamento (Desempilhar)
topo : -1
0 1 2 3 4 5 6 7 8 9
L=
Item guardado:
Se a pilha não estiver vazia.
Portanto:
Item a ser removido: ??? • Guardar o elemento que está em topo.
• Decrementar topo de uma unidade.
PILHA VAZIA!!! • Devolver o valor guardado
Stack Underflow
Pilha Estática
• Desempilhar (Lembrete)
– Caso Geral
• Se a pilha não estiver vazia, então
– Guardar o item que está no topo
– Decrementar o topo de uma unidade
– Devolver o item guardado
void empilhar(int);
int desempilhar();
bool vazia();
bool cheia();
void printBottomUp();
void printTopDown();
};
Pilhas Múltiplas
• Idéia: