Escolar Documentos
Profissional Documentos
Cultura Documentos
EDI Pilha
EDI Pilha
Pilha
Pilha
Definio: uma Lista linear (Simples) onde as operaes de insero, excluso e consulta so feitas em um mesmo extremo da lista (TOPO).
PUSH POP TOPO
Pilha
Notao
Topo da pilha: elemento ao qual se tem acesso imediato. Empilhar: colocar um elemento no topo da pilha. Desempilhar: retirar o elemento do topo da pilha.
Representao:
topo an an-1 ... b1 base a1
Pilha
As operaes sobre Pilha seguem um critrio:
Critrio - LIFO - "LAST IN FIRST OUT" (ltimo a entrar o primeiro a sair)
Insero de um elemento torna-o o ltimo da pilha. O elemento retirado sempre o ltimo da pilha (topo).
Pilha
Operaes
Top: acessa o elemento do topo da pilha.
Referncia da Pilha
push(p, x)
Pilha
e = pop(p)
Elemento Removido
Pilha
Exemplos:
push(p,a)
topo a
push(p,c)
topo
c b a
push(p, b)
topo b a
pop(p)
topo b a
Pilha
Os estados de uma pilha ao longo do tempo
Pilha
Operaes:
Teoricamente, no existe um limite superior para o nmero de elementos na pilha.
seria possvel a incluso infinita de novos elementos em uma pilha.
Pilha
Operaes:
No entanto, existe obrigatoriamente o limite inferior (pilha vazia)
se uma pilha p com somente um elemento objeto de uma operao pop(p), a pilha resultante uma pilha vazia.
E se aplicarmos uma nova operao (pop(p) ou top(p)) sobre esta pilha vazia?
A aplicao de uma destas 2 operaes a uma pilha vazia, ocorre um erro conhecido como underflow .
Pilha
Operaes:
empty(p) operao que retorna um valor booleano para indicar se a pilha est vazia.
TRUE (1) Quando a pilha est vazia FALSE (0) Quando a pilha possui elementos
Pilha
Aplicao prtica:
Controle de chamadas de funes recursivas
Exerccio
Criar um validador de escopos de expresses matemticas usando uma pilha.
O programa deve receber como entrada uma expresso matemtica do tipo
(a * b) + (b * c) {[(a * b) + (b * c)] (a * c)} * j