面试题:编写实例,要求利用数组实现栈,当栈空间满时,栈空间增加一倍。
本人在线等,希望各位大侠帮帮忙,小弟这里谢过各位啦!

解决方案 »

  1.   


    import java.util.Arrays;public class ArrStack{ private int size;

    private Object[] elementData;

    public ArrStack(){
    this(10);
    }

    public ArrStack(int length){
    elementData = new Object[length];
    }

    public int size(){
    return this.size;
    }

    public boolean isEmpty(){
    return this.size == 0;
    }

    public boolean isFull(){
    return this.size == elementData.length;
    }

    public void put(Object obj){
    if(isFull()){
    int newSize = this.size*2;
    System.out.println("stack capcity is "+newSize);
    elementData = Arrays.copyOf(elementData,newSize);
    }
    elementData[size] = obj;
    this.size ++ ;
    }

    public Object pop(){
    if(isEmpty()){
    //添加自己的处理
    return "stack is empty !";
    }
    Object obj = elementData[--size] ;
    elementData[size] = null;
    return obj;
    }

    public static void main(String[] args){
    ArrStack stack = new ArrStack();
    int elementCount = 12;
    for(int i = 0 ; i < elementCount; i ++){
    stack.put(i);
    }
    System.out.println("stack size is :"+stack.size());
    for(int i = stack.size() ; i > 0 ; i --){
    System.out.println(stack.pop());
    }
    System.out.println(stack.pop());
    }
    }
      

  2.   


    你去看看ArrayList的实现代码就是了