zoukankan      html  css  js  c++  java
  • package stack;
    
    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 peek() {
            //栈中没有元素
            if(elements.length==0) {
                throw new RuntimeException("stack is empty");
            }
            return elements[elements.length-1];
        }
    
        //判断栈是否为空
        public boolean isEmpty() {
            return elements.length==0;
        }
    }
    
  • 相关阅读:
    php计算utf8字符串长度
    php和js字符串的acsii码函数
    快速排序的php实现
    bzoj 2822 [AHOI2012]树屋阶梯 卡特兰数
    bzoj 1485 [HNOI2009]有趣的数列 卡特兰数
    bzoj 4173 打表???
    bzoj [Noi2002]Savage 扩展欧几里得
    bzoj 3505 [Cqoi2014]数三角形 组合
    bzoj 2820 莫比乌斯反演
    Travel 并查集
  • 原文地址:https://www.cnblogs.com/lihao-bupt/p/12882358.html
Copyright © 2011-2022 走看看