欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

剑指offer:js实现两个栈模拟队列

程序员文章站 2022-07-10 10:38:02
...

题目:使用两个栈来模拟队列

思路:模拟先入先出的特点,出栈时使用另一个栈来反转原来栈里的内容,已达到先入先出的效果。

function Queue() {
    let s1 = [];
    let s2 = [];
    this.enqueue = function (ele) {
        s1.push(ele);
    }
    this.dequeue = function () {
        if(s2.length == 0 && s1.length == 0){
            return null;
        }
        if(s2.length == 0){
            while(s1.length != 0){
                s2.push(s1.pop());
            }
        }
        // console.log(s2);
        return s2.pop();
    }
    this.show = function () {
        return s1.reverse().concat(s2);
    }
}
let a = new Queue();
a.enqueue(1);
a.enqueue(2);
console.log(a.dequeue());
a.enqueue(1)
a.enqueue(5)
a.dequeue()
console.log(a.show());
相关标签: offer