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