数据结构和算法基础之栈-Java版

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40833790/article/details/90603004

自定义栈代码

public class MyStack {
    private int[] elements;

    public MyStack(){
        elements = new int[0];
    }

    /**
     * 压入一个元素
     * @param element
     */
    public void push(int element){
        int[] newArr = new int[elements.length+1];
        for (int i = 0; i < elements.length; i++) {
            newArr[i] = elements[i];
        }
        newArr[newArr.length-1] = element;
        elements = newArr;
    }

    /**
     * 出栈
     */
    public int pop(){
        if(elements.length == 0){
            throw new RuntimeException("栈中元素为空");
        }
        int target = elements[elements.length-1];
        int[] newArr = new int[elements.length-1];
        for (int i = 0; i < newArr.length; i++) {
            newArr[i] = elements[i];
        }
        elements = newArr;
        return target;
    }

    /**
     * 取出栈顶元素
     * @return
     */
    public int peek(){
        if(elements.length == 0){
            throw new RuntimeException("栈中元素为空");
        }
        return elements[elements.length-1];
    }

    /**
     * 判断栈中是否为空
     * @return
     */
    public boolean isEmpty(){
        return elements.length == 0;
    }

    /**
     * 查看栈中元素
     */
    public void show(){
        System.out.println(Arrays.toString(elements));
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40833790/article/details/90603004