232 栈实现队列
232 栈实现队列
//232 栈实现队列
var MyQueue = function() {
this.stackIn = [];
this.stackOut = [];
};
/**
* @param {number} x
* @return {void}
*/
MyQueue.prototype.push = function(x) {
this.stackIn.push(x);
};
/**
* @return {number}
*/
MyQueue.prototype.pop = function() {
const size = this.stackOut.length; //
if(size > 0) {
return this.stackOut.pop(); //
}
while(this.stackIn.length > 0) {
this.stackOut.push(this.stackIn.pop()); //
}
return this.stackOut.pop();
};
/**
* @return {number}
*/
MyQueue.prototype.peek = function() {
const x = this.pop();
this.stackOut.push(x);
return x;
};
/**
* @return {boolean}
*/
MyQueue.prototype.empty = function() {
return this.stackIn.length === 0 && this.stackOut.length === 0;
};
225 用队列实现栈
225 用队列实现栈
//225 用队列实现栈
var MyStack = function() {
this.queueIn = [];
this.queueOut = [];
};
/**
* @param {number} x
* @return {void}
*/
MyStack.prototype.push = function(x) {
this.queueIn.push(x);
};
/**
* @return {number}
*/
MyStack.prototype.pop = function() {
const size = this.queueIn.length;
for(let i = 0; i < size - 1; i++) {
this.queueOut.push(this.queueIn.shift());
}
const x = this.queueIn.shift();
this.queueIn = this.queueOut;
this.queueOut = [];
return x;
};
/**
* @return {number}
*/
MyStack.prototype.top = function() {
const x = this.pop();
this.push(x);
return x;
};
/**
* @return {boolean}
*/
MyStack.prototype.empty = function() {
return this.queueIn.length === 0;
};