Olá pessoal,
é a primeira vez que posto alguma coisa, vou tentar ser claro ...
Voltei a estudar java recentemente e estou fazendo velhas listas de exercícios da faculdade... dentre elas uma é sobre pilhas
Criei uma classe Pilha bem simples e ela funcionou bem .... mas estou tendo problemas ao tentar fazer esta pilha aumentar de tamanho
quando eu esvazio o resultado me mostra que ao empilhar alguns numeors ficaram de fora .... vou deixar o código aí e se alguém puder dar uma luz !!
class Pilha
{
private Object vetor[];
private int topo;
public void inicializa(int max_elementos)
{
vetor = new Object[max_elementos+1];
}
public boolean vazia()
{
if(topo==0)
{
System.out.println("A pilha está VAZIA !");
return true;
}
else
{
System.out.println("A pilha NÃO está vazia !");
return false;
}
}
// PUSH & POP ===============================
public void push(int x)
{
if(topo<vetor.length-1)
vetor[++topo]=x;
else if ( topo==vetor.length-1)
grow();
}
public Object pop()
{
if(topo==0)
{
System.out.println("Pilha vazia");
return -0;
}
else
return vetor[topo--];
}
// mostra pilha = desempilha em um string============
public void mostra_pilha()
{
String aux="";
while(topo!=0)
aux+=" "+pop();
System.out.println(aux);
}
private void grow()
{
Object vet_velho[] = vetor;
vetor = new Object [ vet_velho.length * 2 ];
for(int i=0;i<vet_velho.length;i++)
vetor[i]= vet_velho[i];
}
}