2017-06-02 91 views
-2

我想實現堆棧,但得到這個錯誤。我不明白爲什麼我得到這個,因爲我定義了一個數組的大小。 我的錯誤: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); 
     } 
    } 

有人可以幫助我。任何代碼更改或新技術必須審覈。

+0

請發表你的錯誤說什麼,以便更好地幫助回答你的問題 – DarkCygnus

+0

@GrayCygnus更新我的問題 –

+1

@shankysingh - 他指的是完整的堆棧跟蹤。 –

回答