Your SlideShare is downloading. ×
0
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Pilha
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Pilha

508

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
508
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PilhasPilhas Uma pilha é um conjunto ordenado de itens no qual novos itens podem ser inseridos e a partir do qual podem ser eliminados itens em uma extremidade chamada topo da pilha.
  • 2. PilhasPilhas • Podem ser implementadas por meio de arranjos (vetores) ou listas • Topo corresponde ao último elemento do conjunto • O último elemento que entra na pilha (lista) é o primeiro elemento que sai • O primeiro elemento que entra na pilha (lista) é o último que sai. o FILO – First in Last out o UEPS – último elemento que entra, primeiro que sai.
  • 3. PilhasPilhas
  • 4. ExemploExemplo Pseudocódigo que representa uma pilha implementada com arranjo
  • 5. Algoritmo Pilha - principalAlgoritmo Pilha - principal Algoritmo Pilha var Tipo pilha_reg = registro topo: inteiro elemento: vetor[1..50] de inteiros fim pilha: pilha_reg inicio pilha.topo ← -1
  • 6. AlgoritmoAlgoritmo Pilha – funções cheia e vaziaPilha – funções cheia e vazia Função vazia( ): lógica início Se (pilha.topo = -1) então retorne .v. Senão retorne .f. fim-se fim Função cheia( ): lógica início Se (pilha.topo = 50) então retorne .v. Senão retorne .f. fim-se fim
  • 7. Algoritmo Pilha – Procedimento empilharAlgoritmo Pilha – Procedimento empilhar Procedimento empilhar(elem: inteiro) início Se (cheia( ) = .f.) então elemento.topo ← elem pilha.topo ← pilha.topo + 1 Senão Mostre(“Pilha Cheia!”) fim-se fim
  • 8. Algoritmo Pilha – FunçãoAlgoritmo Pilha – Função desemplilhardesemplilhar Função desempilhar( ): literal var valorDesempilhado:literal início Se (vazia ( ) = .f.) então valorDesempilhado ← “Pilha Vazia” Senão valorDesempilhado ← pilha.vetor[topo] pilha.topo ← pilha.topo - 1 Fim-se retorne(valorDesempilhado) Fim
  • 9. Algoritmo Pilha – Procedimento exibePilhaAlgoritmo Pilha – Procedimento exibePilha Procedimento exibePilha( ) var i:inteiro início Se vazia() = .v. então Mostre(“Pilha vazia”) Senão Para(i ← 0 até topo) faça Mostre(“Elemento ”, elemento[i], “ posição ”, i) Fim-para Fim-se fim fim. // fim do algoritmo principal
  • 10. Implementação da classeImplementação da classe  class Pilha { int tamanho; int topo; Object vetor[]; Pilha(int tam) { topo = -1; tamanho = tam; vetor = new Object[tam]; }
  • 11. Métodos vazia e cheiaMétodos vazia e cheia public boolean vazia (){ if (topo == -1) return true; else return false; } public boolean cheia (){ if (topo == tamanho -1) return true; else return false; }
  • 12. Método empilharMétodo empilhar public void empilhar(Object elem){ if (cheia( ) == false) { topo++; vetor[topo] = elem; }else System.out.println("Pilha Cheia"); }
  • 13. Método desempilharMétodo desempilhar public Object desempilhar(){ Object valorDesempilhado; if (vazia( ) == true) valorDesempilhado = "Pilha Vazia"; else{ valorDesempilhado = vetor[topo]; topo--; } return valorDesempilhado; }
  • 14. Método exibePilhaMétodo exibePilha public void exibePilha(){ if (vazia() == true) System.out.println("Pilha Vazia"); else{ for(int i = topo; i >= 0; i--) System.out.println("Elemento " + vetor[i] + " posicao " + i); } } } // Fim da classe
  • 15. Classe que exemplifica a utilizaçãoClasse que exemplifica a utilização da pilhada pilha import javax.swing.JOptionPane; class usaPilha { static Pilha P = new Pilha(5); int i = 0; static Object valor; public static void main(String args[]){ int opcao = 1; while (opcao != 4) { opcao = Integer.parseInt (JOptionPane.showInputDialog(null, "Escolha uma Opçao n" + "1-Inserir um elemento na pilha n" + "2- Excluir elemento da pilha n" + "3-Exibir elementos da pilhan" + "4-Sair n"));
  • 16. Classe que exemplifica a utilizaçãoClasse que exemplifica a utilização da pilha - Continuaçãoda pilha - Continuação switch (opcao) { case 1 : valor = JOptionPane.showInputDialog(null, "Empilhar elemento n" + "Digite um valor"); P.empilhar(valor); break; case 2 : System.out.println("Elemento desempilhado " + P.desempilhar()); break; case 3 : P.exibePilha(); break; default: JOptionPane.showMessageDialog(null,"Sair"); } } }}

×