題目:使用兩個棧來模擬隊列
思路:模擬先入先出的特點,出棧時使用另一個棧來反轉原來棧裏的內容,已達到先入先出的效果。
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());