我想實現堆棧,但得到這個錯誤。我不明白爲什麼我得到這個,因爲我定義了一個數組的大小。 我的錯誤: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 - 他指的是完整的堆棧跟蹤。 –