2013/04/24

Java - Capitulo 15: Pilha II

new Comment();

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();
}

}
If You Enjoyed This, Take 5 Seconds To Share It

0 comentarios:

Postar um comentário