跳到主要内容

使用栈实现队列

问题:js 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型

思路

栈:先进后出

队列: 先进先出

先入栈,然后将栈中的数据全部倒入到辅助栈中,就会变成栈先插入的元素在辅助栈的最顶层,调用 pop 方法即可

代码实现如下:

function queue() {
this.inStack = []
this.outStack = []
}
queue.prototype = {
constructor: queue,
push: function(v) {
this.inStack.push(v)
},
pop: function() {
if(!this.outStack.length) {
while(this.inStack.length) {
this.outStack.push(this.inStack.pop())
}
}
return this.outStack.pop() || -1
}
}

拓展:用两个队列实现栈