美文网首页
数据结构 - 栈

数据结构 - 栈

作者: Super曲江龙Kimi | 来源:发表于2020-03-03 21:28 被阅读0次
    image.png
    使用arraylist来创建stack是因为push和pop操作都只在尾部操作,这样数组的效率是最高的。使用双向链表也可以,单向链表删除需要从头开始找到尾
    class Stack {
        constructor() {
            this.list = new ArrayList();
        }
    
        // 清空栈
        clear() {
            this.list.clear();
        }
    
        // 获取size
        getSize() {
            return this.list.getSize();
        }
    
        // 判断是否为空
        isEmpty() {
            return this.list.isEmpty();
        }
    
        // 入栈 
        // 由于是从最后插入,数组不需要挪位置,所以复杂度:O(1)
        push(ele) {
            this.list.add(ele);
        }
    
        // pop出栈
        // 数组删除最后一个也不需要挪位置 复杂度:O(1) 
        pop() {
            return this.list.remove(this.list.getSize() - 1);
        }
    
        // 获取栈顶元素 复杂度:O(1)
        top() {
            return this.list.get(this.list.getSize() - 1);
        }
    }
    

    相关文章

      网友评论

          本文标题:数据结构 - 栈

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