在Java中为Stack结构创建动态数组

时间:2016-12-04 10:05:59

标签: java arrays data-structures stack arraycopy

我正在学习堆栈数据结构。我想创建一个动态数组。当超出大小时,我想创建一个新数组。

节目输出:

java.lang.ArrayIndexOutOfBoundsException: 2
must be :50 40 30

代码如下:

    class Stack{
      int array[];
      int size;
      int top;

      Stack(int size){
        this.size=size;
        array=new int[size];
        top=0;
       }

       public void push(int a){
          if(top>=size){
          int array2[]=new int[size*2];
          for(int i=0;i<size;i++){
            array2[i]=array[i];
          }
          array[top++]=a;
          }
          else{
            array[top++]=a;
          }
        }
        public int pop(){
          return array[--top];
      }
    }

    public class Stack1 {

    public static void main(String[] args) {
       Stack y=new Stack(2);
       y.push(10);
       y.push(20);
       y.push(30);
       y.push(40);
       y.push(50);

       System.out.println(y.pop());
       System.out.println(y.pop());
       System.out.println(y.pop()); 
    }
 }

0 个答案:

没有答案