Capitulo 15: Pilha II
Pilha é uma estrutura de dados que pode ser acessada somente por UMA de suas extremidades para armazenar e recuperar dados. É conhecida também como estrutura LIFO (last in, first out – último a entrar, primeiro a sair).
Usa-se os comandos push() e pop() para inserir e remover elementos da pilha, respectivamente.
O meu objetivo é desenvolver uma classe que implemente uma pilha. O caro leitor pode estar se perguntando: “para quê, se a Java possui a classe Stack que já possui os métodos para tais fins?”
A resposta é simples: para conhecermos a tecnologia a fundo. Para muitas pessoas não é suficiente usá-la, mas saber como ela foi implementada e como melhorá-la (por que não?).
Segue uma implementação da classe:
// implementação de uma pilha com 100 elementos // Desenvolvido por: Antonio Rodrigo dos Santos Silva // rodrigosantos@ifce.edu.br import javax.swing.*; class Pilha{ int inicio; int fim; int tamanho; int qtdeElementos; int p[]; public Pilha(){ inicio = fim = -1; tamanho = 100; p = new int[tamanho]; qtdeElementos = 0; } public boolean estaVazia(){ if (qtdeElementos == 0){ return true; } return false; } public boolean estaCheia(){ if (qtdeElementos == tamanho - 1){ return true; } return false; } public void adicionar(int e){ if (! estaCheia()){ if (inicio == -1){ inicio = 0; } fim++; p[fim] = e; qtdeElementos++; } } public void remover(){ if (! estaVazia() ){ fim --; qtdeElementos --; } } public void mostrar(){ String elementos = ""; for (int i = fim; i>=0; i--) { elementos += p[i]+ " - "; } JOptionPane.showMessageDialog(null, elementos); } } public class PilhaAplicacao { public static void main(String[] args) { Pilha p = new Pilha(); p.adicionar(10); p.adicionar(12); p.adicionar(30); p.mostrar(); p.remover(); p.mostrar(); } }
0 comentarios:
Postar um comentário