Erro OutOfBoundsException Java Pilha
Olá pessoas lindas, estou trabalhando em implementar um modelo simples de pilha no java utilizado uma classe, MAS, estou com esse erro, procurei em vários fóruns alguma resposta para o meu problema, mas, sem sucesso :(... Poderia dar uma olhada e me ajudar ?
-----------------------------------------Main-----------------------------------
Pilhada P = new Pilhada();//criando minha pilha(objeto)
Scanner sc = new Scanner (System.in);//importando o scanner para resgatar os valores digitados
//inserindo dados na minha pilha(Push)
while (P.VerfPilhaCheia() == false) {
System.out.println("Digite um número: ");
P.Push(sc.nextInt());//envia o valor digitado pelo usuario
}
//retirando os valores da minha pilha(Pop)
while (P.VerfPilhaVazia() == false) {
System.out.println("Pop: " + P.getTopo());
System.out.println(P.Pop());
}
-----------------------------------------Classe-----------------------------------
final int TAMANHODAPILHA = 3;
private int Pilha_Vet[];
private int iTopo;
public Pilhada() {
iTopo = - 1;
Pilha_Vet = new int[TAMANHODAPILHA];
}
public boolean VerfPilhaVazia() {
if (iTopo == -1) {
System.out.println("Pilha Vazia!!!");
return true;//se a pilha estiver vazia
} else {
return false;//se a pilha não estiver vazia
}
}
public boolean VerfPilhaCheia() {
if (iTopo == TAMANHODAPILHA) {
System.out.println("Pilha Cheia!!!");
return true;//se a pilha estiver cheia
} else {
return false;//se a pilha não estiver cheia
}
}
public void Push(int iNum) {
/*if (this.VerfPilhaCheia() == true) {//verifica se a pilha está cheia
System.out.println("Pilha cheia!!!");//caso esteja imprime esta mensagem
} else {//caso não*/
this.iTopo = this.iTopo + 1;//acrescenta +1 ao indice
this.Pilha_Vet[this.iTopo] = iNum;//e armazena no vetor o valor
// }
}
public int Pop() {
/* if (this.VerfPilhaVazia() == true) {
System.out.println("Pilha vazia!!!");
return 0;
} else {*/
this.iTopo = this.iTopo - 1;
return this.Pilha_Vet[this.iTopo];
// }
}
public int getTopo() {
return this.iTopo;
}
-----------------------------------------Main-----------------------------------
Pilhada P = new Pilhada();//criando minha pilha(objeto)
Scanner sc = new Scanner (System.in);//importando o scanner para resgatar os valores digitados
//inserindo dados na minha pilha(Push)
while (P.VerfPilhaCheia() == false) {
System.out.println("Digite um número: ");
P.Push(sc.nextInt());//envia o valor digitado pelo usuario
}
//retirando os valores da minha pilha(Pop)
while (P.VerfPilhaVazia() == false) {
System.out.println("Pop: " + P.getTopo());
System.out.println(P.Pop());
}
-----------------------------------------Classe-----------------------------------
final int TAMANHODAPILHA = 3;
private int Pilha_Vet[];
private int iTopo;
public Pilhada() {
iTopo = - 1;
Pilha_Vet = new int[TAMANHODAPILHA];
}
public boolean VerfPilhaVazia() {
if (iTopo == -1) {
System.out.println("Pilha Vazia!!!");
return true;//se a pilha estiver vazia
} else {
return false;//se a pilha não estiver vazia
}
}
public boolean VerfPilhaCheia() {
if (iTopo == TAMANHODAPILHA) {
System.out.println("Pilha Cheia!!!");
return true;//se a pilha estiver cheia
} else {
return false;//se a pilha não estiver cheia
}
}
public void Push(int iNum) {
/*if (this.VerfPilhaCheia() == true) {//verifica se a pilha está cheia
System.out.println("Pilha cheia!!!");//caso esteja imprime esta mensagem
} else {//caso não*/
this.iTopo = this.iTopo + 1;//acrescenta +1 ao indice
this.Pilha_Vet[this.iTopo] = iNum;//e armazena no vetor o valor
// }
}
public int Pop() {
/* if (this.VerfPilhaVazia() == true) {
System.out.println("Pilha vazia!!!");
return 0;
} else {*/
this.iTopo = this.iTopo - 1;
return this.Pilha_Vet[this.iTopo];
// }
}
public int getTopo() {
return this.iTopo;
}
David Fornazier
Curtidas 0