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

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

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

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());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章