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