美文网首页
数组实现栈

数组实现栈

作者: 竖起大拇指 | 来源:发表于2020-05-15 16:39 被阅读0次

之前面试的时候,有过面试官让手写数组实现栈,特记录如下:

public class ArrayStack {

    private int maxCount;//最大容量

    private int topPoint=-1;//栈顶指针

    private int[] stack;//数组来存放数据

    public ArrayStack(int count){
        maxCount=count;
        //初始化数组
        stack=new int[maxCount];
    }

    public boolean isEmpty(){
        //栈顶指针为-1 代表当前栈还没有存入元素
        return topPoint==-1;
    }

    public boolean isFull(){
        //当栈顶指针等于栈的最大容量-1时 代表栈的容量满了
        return topPoint==maxCount-1;
    }

    /**
     * 入栈的方法
     * @param element
     */
    public void push(int element){
        if(isFull()){
            return;
        }
        topPoint++;
        stack[topPoint]=element;
    }


    public int pop(){
      //验证是否可以取出元素
        if(isEmpty()){
            throw new RuntimeException("栈空了");
        }
        //取出栈顶元素
        int value=stack[topPoint];
        //栈顶指针向下移动
        topPoint--;
        return value;
    }
}

相关文章

网友评论

      本文标题:数组实现栈

      本文链接:https://www.haomeiwen.com/subject/hbncohtx.html