栈与队列

栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,我们就应该首选“栈”这种数据结构。
实际上,栈既可以用数组来实现,也可以用链表来实现。用数组实现的栈,我们叫作顺序栈,用链表实现的栈,我们叫作链式栈。

用数组实现的栈

class Stack{
    constructor(){
        this.items = []
        this.count = 0
    }

    push(value){
        this.items.push(value)
        ++ this.count
        return this.items
    }

    pop(){
        if(this.count === 0)return []
        return this.items.pop()
    }

    print(){
        console.log(this.items.toString())
    }
}
var stack = new Stack();
stack.push("Jack");
stack.push("Mike");
stack.push("Candy");
stack.print(); // Jack,Mike,Candy
stack.pop();
stack.print(); // Jack,Mike
上一篇:绘制森林图(R)


下一篇:Maps