Java对栈的基本操作

栈:先入后出

百度百科:

  栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。

向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是

把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

public class MyStack {
    private int size;
    private int[] arr;
    private int top;
    //栈的初始化
    public MyStack(int size){
        arr=new int[size];
        this.size=size;
        top=-1;
    }
    //入栈
    public void push(int n){
        if(!isFull()){
            arr[++top]=n;
        }else{
            System.out.println("栈满--无法继续入栈!");
        }
    }
    //出栈 / 获取栈顶元素
    public int pop(){
        if(isEmpty()){
            System.out.println("栈空--栈内已无元素!");
            return 0;
        }
        return arr[top--];
    }
    //判断栈是否为空
    public boolean isEmpty(){
        return top==-1;
    }
    //判断栈是否已满
    public boolean isFull(){
        return top==(size-1);
    }
    //获取栈的长度
    public int getStackLength(){
        return top+1;
    }
    //销毁栈
    public void stackDestroy(){
        top=-1;
    }

    public static void main(String[] args) {
        MyStack myStack=new MyStack(5);
        int i=0;
        while(!myStack.isFull()){
            myStack.push(i++);
        }
        while(!myStack.isEmpty()){
            System.out.println(myStack.pop());
        }
    }
}
发布了84 篇原创文章 · 获赞 0 · 访问量 699

猜你喜欢

转载自blog.csdn.net/qq_38405199/article/details/103527624