Aula02 Pilhas

407 visualizações

Publicada em

Trabalho apresentado na disciplina de docência no ensino superior - PPGCC - IFCE

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
407
No SlideShare
0
A partir de incorporações
0
Número de incorporações
118
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula02 Pilhas

  1. 1. MINICURSO DE ESTRUTURA DE DADOS Aula 02 – Pilhas e seus algoritmos
  2. 2. CONTEÚDO DA AULA Conceitos •Pilhas •Stack-empty •Push •Pop Algoritmos Exercícios •Operações com pilhas
  3. 3. CONCEITOS Pilhas •Como passado na aula anterior pilha é uma variação de deque. • A pilha implementa a seguinte norma: O último a entrar é o primeiro a sair, ou LIFO (last in first out).
  4. 4. CARACTERÍSTICAS DAS PILHAS Formas de armazenamento • Em vetores • Ponteiros ( um ponteiro indica o topo da pilha ) Operações básicas • Verificar se lista está vazia – STACK-EMPTY(S) • Retornar o índice do topo – TOPO(S) • Inserir um elemento(empilhar) – PUSH(S,x) • Remover um elemento(desempilhar) – POP(S) Operações inválidas • Inserção em pilha cheia – OVERFLOW • Remoção em pilha vazia – UNDERFLOW
  5. 5. EXEMPLO DE OPERAÇÃO EM PILHAS Índice da pilha S 5 4 3 2 1 Inicial: pilha vazia - - - - - PUSH(S,a) - - - - A PUSH(S,b) - - - B A POP(S) - - - - A PUSH(S,c) - - - C A POP(S) - - - - A POP(S) - - - - - POP(S) - - - - - A figura acima ilustra algumas operações na pilha S, utilizando os algoritmos de empilhamento(PUSH) e desempilhamento (POP). Observe que na última operação ocorre uma erro de UNDERFLOW, onde a pilha já se encontra vazia e mesmo assim é dado o comando de desempilhar.
  6. 6. O ALGORITMO STACK-EMPTY(S) • O algoritmo STACK-EMPTY(S) serve para consultar se a lista está vazia visando evitar problemas de UNDERFLOW. Conceito • STACK-EMPTY(S) • If topo[S] = 0 • then return TRUE • else return FALSE Código
  7. 7. O ALGORITMO PUSH(S,X) • O algoritmo PUSH(S, x) realiza o procedimento de empilhamento, ou seja, insere um elemento na estrutura. Conceito • PUSH(S,x) • topo[S]  topo[S + 1] • S[topo[S]]  x Código
  8. 8. O ALGORITMO POP(S) •O algoritmo POP(S) realiza o procedimento de desempilhamento, ou seja, remove um elemento na estrutura. Conceito •POP(S) • if STACK-EMPTY(S) • then error “underflow” • else topo[S]  topo[S - 1] • return S[topo[S] + 1 Código
  9. 9. EXERCÍCIO Utilizando o modelo de pilha do exemplo passado, ilustre o resultado de cada operação na sequência PUSH(S,4), PUSH(S,1), PUSH(S,3), POP(S), PUSH(S,8), POP(S) sobre uma pilha S inicialmente vazia armazenada num arranjo[1 .. 5].
  10. 10. DUVIDAS? Aula 02 – Pilhas

×