数据结构 栈

public class Demo {
    private Object[] data;
    private int top;
    private int size;
    public void InitStack(){
        size=10;
        data=new Object[size];
        top=0;
    }
    public void push(Object o){
        if(top==size){
            Object[] newdata=new Object[size*2];
            for(int i=0;i!=data.length;++i){
                newdata[i]=data[i];
            }
            data=newdata;
            size*=2;
        }
        data[top++]=o;
    }
    public Object pop(){
        if(top==0){
            System.out.println("Stack is empty!");
            return null;
        }
        return data[--top];
    }
    public Object peek(){
        if(top==0){
            System.out.println("Stack is empty");
            return null;
        }
        return data[top-1];
    }
    public static void main(String[] args){
        Demo demo=new Demo();
        demo.InitStack();
        for(int i=0;i!=100;++i){
            demo.push(i);
        }
        int j=(Integer)demo.pop();
        System.out.println(j);
    }
}

 

posted on 2014-03-10 18:15  随风蔷薇  阅读(145)  评论(0编辑  收藏  举报