public class Pilha {

/* Classe inetrna a Classe pilha para definir o elemento da pilha */

//Atributo dado por ser Object, permite qualquer tipo de dado
private Object dado;
private ItemPilha prox;

//Construtor, aponta prox do item para null (inicializa item)
public ItemPilha() {
this.prox = null;
}
//metodo para atribuir o endereco para onde o item ira aponta
public void atribuiProx(ItemPilha proximo) {
this.prox = proximo;
}

//metodo para retornar o conteudo do topo da pilha (item)
public Object retornaDado() {
return this.dado;
}

//metodo para retornar o conteudo o endereco do proximo item
public ItemPilha retornaProx() {
return this.prox;
}
/* fim da classe ItemPilha */
// Referencia para o objeto do topo da pilha
protected ItemPilha topo;
protected int numeroElementos;

//Construtor da classe pilha. Inicializa a pilha
public Pilha() {
this.topo = null;
}

//Metodo para inserir um novo item na pilha (empilhar)
public void Empilha(Object dado) {
ItemPilha novoItem = new ItemPilha();
novoItem.atribuiDado(dado);
novoItem.atribuiProx= this.topo;
this.topo = novoItem;
}

//Metodo para desempilhar o item pilha
public void Desempilha() {
if (! vazia()){
ItemPilha ItemRemovido = this.topo;
this.topo = this.topo.retornaProx();
ItemRemovido = null;
}
}

//lista vazia ?
public boolean vazia() {
if (this.topo==null) {
return true;
} else {
return false;
}
}

//mostra dadis da pilha
public void Mostra() {
ItemPilha aux = this.topo;
while(aux != null) {
System.out.println(aux.retornaDado());
aux = aux.retornaProx();
}
}

//Retorna o numero de elementos que a pilha contém
public int quantidaDeElementos() {
return numeroElementos;
}

//Retorna o dado do objeto que esta no topo da pilha
public Object dadoTopo() {
return this.topo.dado;
}

}

Este artigo foi útil ?
SimNão

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Close Search Window