4.顺序栈

来源:互联网 发布:苹果cms西瓜播放器 编辑:程序博客网 时间:2024/05/22 17:44
package sequenceStack;public class SequenceStack<T> {final int MaxSize=10;private T[] stackArray;    private int top;          //无参构造方法    public SequenceStack( ) {}    //有参构造方法    public SequenceStack(int n)    {        if (n<=0) {        System.out.println("数组程序运行!");            System.exit(1);        }        top=-1;        stackArray=(T[])new Object[n];    }    //入栈    public void push(T obj)    {    //判断栈是否已满        if(top==stackArray.length-1){        T []p=(T[])new Object [top*2];            for(int i=0;i<=top;i++)                p[i]=stackArray[i];            stackArray=p;        }        top++;        stackArray[top]=obj;     }    //出栈    public T pop()    {    //判断栈是否为空            if(top==-1){        System.out.println("空栈,无法删除元素");        return null;        }        top--;        return stackArray[top+1];//刘     }        //取栈顶元素    public T getHead()    {        if(top==-1){        System.out.println("空栈,无法删除元素");        return null;        }        return stackArray[top];    }    //判栈空操作    public boolean isEmpty()    {        return top==-1;    }    //求栈的长度    public int size()    {        return top+1;    }        //遍历栈    public void nextOrder()    {         for(int i=top;i>=0;i--)        System.out.println(stackArray[i]);    }    //清空栈操作    public void clear()    {        top=-1;    }   }

原创粉丝点击