java数据结构-栈的底层实现:数组实现压入,弹出,判断空栈

package com.stack;/** * @auther 付强 * @date 2020/2/13 - 12:45 */public class Mystack {    //栈的底层我们使用数组来存储数据    int[] elements;    public Mystack(){        elements=new int[0];    }    //压入元素    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[elements.length]=element;        //使用新数组替换就数组        elements=newArr;    }    //取出栈顶元素    public int pop(){        //栈中没有元素        if(elements.length==0){            throw new RuntimeException("stack is empty");        }        //取出数组的最后一个元素        int element = elements[elements.length - 1];        //创建一个新的数组        int[] newArr=new int[elements.length-1];        //把原数组中处理最后一个元素的其他元素都放入新数组中        for (int i = 0; i < elements.length - 1; i++) {            newArr[i]=elements[i];        }        //替换数组        elements=newArr;        //返回栈顶元素        return element;    }    //查看栈顶元素    public int pick(){        //栈中没有元素        if(elements.length==0){            throw new RuntimeException("stack is empty");        }        return  elements[elements.length-1];    }    //判断栈是否为空    public boolean isEmpty(){        return elements.length==0;    }}

相关推荐