初始化队列,创建两个空栈
var MyQueue = function() {
this.stack1 = [];
this.stack2 = [];
};
stack1主要存放数据,push()直接将数据放入stack1的末尾
MyQueue.prototype.push = function(x) {
this.stack1.push(x);
};
pop()弹出队列的第一个数,即stack1最底层的数,此时需要用到栈二。
将stack1的数依次由上到下弹出后放入stack2,这时stack2顶端的数就是stack1第一个放入的数,弹出后再重复一次将stack2的数放入stack1
MyQueue.prototype.pop = function() {
while(this.stack1.length != 0){
this.stack2.push(this.stack1.pop());
}
let top = this.stack2.pop();
while(this.stack2.length != 0){
this.stack1.push(this.stack2.pop());
}
return top;
};
直接返回数组(stack1)第一个数即可
MyQueue.prototype.peek = function() {
return this.stack1[0];
};
判断数据长度,返回即可
MyQueue.prototype.empty = function() {
return this.stack1.length == 0;
};