前提
js数组中,可以用数组模拟栈或队列
栈:push 和 pop
队列:push,unshift
分析
用两个栈模拟队列也就是通过两个栈,实现队列的 push 和 shift 方法
代码实现
var CQueue = function() {
this.stack1 = [];
this.stack2 = [];
};
CQueue.prototype.appendTail = function(value) {
this.stack1.push(value);
};
CQueue.prototype.deleteHead = function() {
if (this.stack1.length === 0) {
return -1;
} else if (this.stack1.length === 1) {
return this.stack1.pop();
} else {
while(this.stack1.length !== 1) {
let temp = this.stack1.pop();
this.stack2.push(temp);
}
let result = this.stack1.pop();
while(this.stack2.length !== 0) {
let temp = this.stack2.pop();
this.stack1.push(temp);
}
return result;
}
};