我想实现堆栈,但得到这个错误。我不明白为什么我得到这个,因为我定义了一个数组的大小。 我的错误:java.lang.ArrayIndexOutOfBoundsException从那里我打电话推送操作堆栈实现期间的java.lang.ArrayIndexOutOfBoundsException
ReverseStack(int n){
top = - 1;
size = n;
a = new char[size];
}
boolean push(char c){
if(top >=size){
System.out.println("Stack overflow");
return false;
}else{
a[top++] = c;
return true;
}
}
char pop(){
if(top<0){
System.out.println("Stack underflow");
return 0;
}else{
char c = a[top--];
return c;
}
}
方法。
public static void reverse(StringBuffer str){
int n = str.length();
ReverseStack obj = new ReverseStack(n);
int i;
for(i=0; i<n; i++){
obj.push(str.charAt(i));
}
for(i=0; i<n; i++){
char ch = obj.pop();
str.setCharAt(i, ch);
}
}
有人可以帮助我。任何代码更改或新技术必须审核。
请发表你的错误说什么,以便更好地帮助回答你的问题 – DarkCygnus
@GrayCygnus更新我的问题 –
@shankysingh - 他指的是完整的堆栈跟踪。 –