用到的两个函数:
//push:添加到末尾,并返回加入的元素
//pop:删除末尾的元素,并返回该元素
实现先进先出原理:this.out1.push(this.in1.pop())
//建立两个栈
var MyQueue = function() {
this.in1=[]
this.out1=[]
};
/**
* @param {number} x
* @return {void}
*/
MyQueue.prototype.push = function(x) {
//加入
this.in1.push(x)
};
/**
* @return {number}
*/
//先进先出
MyQueue.prototype.pop = function() {
//先把out1栈内的元素输出
const size=this.out1.length
if(size){
//返回被删除的元素
return this.out1.pop()
}
//把in中的数据,加入out中
//push:添加到末尾,并返回加入的元素
//pop:删除末尾的元素,并返回该元素
while(this.in1.length){
//先加入out1队列(队列反转了)
this.out1.push(this.in1.pop())
}
//返回删除的元素
return this.out1.pop()
};
/**
* @return {number}
*/
MyQueue.prototype.peek = function() {
//调用pop()函数,获得删除的元素
const x=this.pop()
//再加入out函数
this.out1.push(x)
return x
};
/**
* @return {boolean}
*/
MyQueue.prototype.empty = function() {
return !this.in1.length && !this.out1.length
};