Erro OutOfBoundsException Java Pilha
08/03/2016
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)