剑指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());
上一篇: Shell脚本——字符串截取
下一篇: 牛客--2 替换空格