Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivos
Compreender o que uma estrutura em pilha Compreender sua aplicao Capacitar para implementar pilhas
Atividade Estruturada!
Material de Estudo
Material
Apresentao Biblioteca Virtual
Acesso ao Material
http://www.caetano.eng.br/ (Aula 5) Estruturas de Dados -?
RECORDANDO...
Recordando...
Podemos criar listas
Ordenadas e no ordenadas
Listas: acrescento...
No ordenada: no fim Ordenada: no lugar correto
Listas: removo...
De qualquer lugar
LIFO:
Last In First Out
6 5 4 3 2 1
PILHAS DE DADOS
Pilhas
Estrutura de dados Pilha: Lista LIFO Inserir: sempre no fim da lista (topo da pilha) Remover: sempre do fim da lista (topo da pilha) Isso til em software?
Vejamos alguns casos!
Pilhas
J observou o recurso de desfazer do Word?
5 2
7 5 2
8
7 5 2
10
8
7 5 2
10
8
7 5 2
10, 8
10, 8
7 5 2
10, 8, 7
7 5 2
10, 8, 7
5 2
10, 8, 7, 5
5 2
10, 8, 7, 5
2
10, 8, 7, 5, 2
2
+ 2
3+2=5
3 + 2
* 5
5 * 5 = 25
5 * 5
25
25
+ 25
3 + 25
/ 3 + 25
3 / 3 + 25
* 3 / 3 + 25
7 * 3 = 21
21 / 3 + 25
21 / 3 + 25
21 / 3 = 7
7 + 25
7 + 25 = 32
7 + 25
32
Implementando Pilhas
Pilha: Essencialmente uma lista 0 1 2 3 4 5 6 7 pilha: ? ? ? ? ? ? ? ? topo: ??
Operaes:
Inicializar Empilhar Desempilhar
8 ? 9 ?
Implementando Pilhas
Inicializar Pilha
pilha: ? topo: -1
0 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
Vamos implementar
Implementando Pilhas
Empilhar
pilha: ? topo: -1
0 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Empilhar
pilha: ? topo: -1
0 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
-1 < 9...
Posso Empilhar!
Implementando Pilhas
Empilhar
pilha: ? topo: 0
0 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Empilhar
pilha: 8 topo: 0
0 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Empilhar
pilha: 8 topo: 0
0 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
0 < 9...
Posso Empilhar!
Implementando Pilhas
Empilhar
pilha: 8 topo: 1
0 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Empilhar
pilha: 8 topo: 1
0 1 5 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Empilhar
Vamos implementar?
Implementando Pilhas
Desempilhar
pilha: 7 topo: 5
0 1 6 2 44 3 22 4 1 5 6 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Desempilhar
pilha: 7 topo: 5
0 1 6 2 44 3 22 4 1 5 6 6 ? 7 ? 8 ? 9 ?
5 0...
Posso Desempilhar!
Implementando Pilhas
Desempilhar
pilha: 7 topo: 5
0 1 6 2 44 3 22 4 1 5 6 6 ? 7 ? 8 ? 9 ?
Desempilhamos:
Implementando Pilhas
Desempilhar
pilha: 7 topo: 4
0 1 6 2 44 3 22 4 1 5 6 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Desempilhar
pilha: 7 topo: 4
0 1 6 2 44 3 22 4 1 5 6 6 ? 7 ? 8 ? 9 ?
4 0...
Posso Desempilhar!
Implementando Pilhas
Desempilhar
pilha: 7 topo: 4
0 1 6 2 44 3 22 4 1 5 6 6 ? 7 ? 8 ? 9 ?
Desempilhamos:
Implementando Pilhas
Desempilhar
pilha: 7 topo: 3
0 1 6 2 44 3 22 4 1 5 6 6 ? 7 ? 8 ? 9 ?
Implementando Pilhas
Desempilhar
Vamos implementar?
EXERCCIO DE FIXAO
Exerccio 1
Converter um nmero para binrio:
Dividir por 2 e anotar o resto (da dir para esq.) Pegar parte inteira... Dividir por 2 e anotar o resto...
Converso DB
Regra prtica: converter 13 para binrio
1b
13/2 = 6... Resto 1
Converso DB
Regra prtica: converter 13 para binrio
01b 1b
13/2 = 6... 6/2 = 3... Resto 1 Resto 0
Converso DB
Regra prtica: converter 13 para binrio
101b 01b
13/2 = 6... 6/2 = 3... 3/2 = 1... Resto 1 Resto 0 Resto 1
Converso DB
Regra prtica: converter 13 para binrio
1101b 101b
13/2 = 6... 6/2 = 3... 3/2 = 1... 1/2 = 0... Resto 1 Resto 0 Resto 1 Resto 1
Converso DB
Regra prtica: converter 13 para binrio
1101b
13/2 = 6... 6/2 = 3... 3/2 = 1... 1/2 = 0... 0 Resto 1 Resto 0 Resto 1 Resto 1 Fim!
Exerccio 1
Converter um nmero para binrio:
Dividir por 2 e anotar o resto (da dir para esq.) Pega parte inteira... Divide por 2 e anotar o resto...
Dicas
x = a / b x armazena o quociente se for int x = a % b x armazena o resto da div. a/b
Exerccio 2
Construa um programa que leia um vetor de chars e, usando duas pilhas (ambas de chars) separe em pilhas diferentes os dgitos e as letras.
Dicas
cin.getline(char v[], max) ltimo caractere de um texto: \0 #include <cctype>
isdigit(char valor) isalpha(char valor)
CONCLUSES
Resumo
Pilhas: lista do tipo LIFO So teis para
Inverter resultados / listas Armazenar resultados temporariamente
TAREFA
Estudar!
Prxima Aula
S isso d pra fazer com pilha?
No!
PERGUNTAS?