error inicializar pila de objetos en java
Publicado por GRin (2 intervenciones) el 03/05/2018 02:07:41
Buenass, ayudenme por fa con esto
He creado una pila de objetos para guardar en cada posición de la pila un valor, x, y todos enteros, al momento de inicializarla me sale este error:
n: 3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at sudokufada.Pila.<init>(Pila.java:30)
at sudokufada.EjemploPila.<init>(EjemploPila.java:15)
at sudokufada.EjemploPila.main(EjemploPila.java:32)
mi codigo es:
clase Pila:
--------------------------------------------------
clase dato ingresado:
------------------------------------------------
main:
He creado una pila de objetos para guardar en cada posición de la pila un valor, x, y todos enteros, al momento de inicializarla me sale este error:
n: 3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at sudokufada.Pila.<init>(Pila.java:30)
at sudokufada.EjemploPila.<init>(EjemploPila.java:15)
at sudokufada.EjemploPila.main(EjemploPila.java:32)
mi codigo es:
clase Pila:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
private int top, n;
private int fila, col;
datoIngresado objetosJugada[]=new datoIngresado[n];
public Pila(int n) {
top = -1;
this.n = n;
System.out.println("n: " + n);
for (int i=0;i<n;i++){
objetosJugada[i]= new datoIngresado(0,0,0); ///////////error aquí///////////////////////////////////
}
}
///////////////////////////////////////////////otras funciones de la clase pila/////////////////////////////////////////////////////////
public boolean empty(){
if(top==-1)
return true;
else
return false;
}
public boolean full(){
return top==n-1;
}
public void push(int valor, int fil, int col){
if (full())
System.out.println("overflow");
else{
top++;
//S[top]=x;
System.out.println("Tp: "+top);
objetosJugada[top]= new datoIngresado(valor,fil,col);
}
}
public int [] pop(){
int [] result1Pos = new int [3];
if(empty()){
System.out.println("underflow");
//return -1;
}
else{
top--;
//return objetosJugada[top+1];
result1Pos [0]= objetosJugada[top+1].getValor();
result1Pos [1]= objetosJugada[top+1].getFila();
result1Pos [2]= objetosJugada[top+1].getCol();
}
return result1Pos;
}
--------------------------------------------------
clase dato ingresado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
*/
public class datoIngresado {
int valor = 0;
int posFila=0;
int posCol=0;
public datoIngresado(int vvalor, int posf, int poscol) {
valor= valor;
posFila=posf;
posCol=poscol;
}
main:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class EjemploPila {
public EjemploPila() {
Pila pilita = new Pila(3);
pilita.push(5,2,2);
pilita.push(3,2,1);
pilita.push(7,2,0);
System.out.println("Sale: "+pilita.pop());
System.out.println("Sale: "+pilita.pop());
System.out.println("Sale: "+pilita.pop());
System.out.println("Sale: "+pilita.pop());
System.out.println("Sale: "+pilita.pop());
System.out.println("Sale: "+pilita.pop());
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new EjemploPila();
}
}
Valora esta pregunta


0