使用两个栈模拟队列操作
- 栈:先进后出
- 队列:先进先出
- 创建对象参考:javaScript创建对象的几种模式
- 使用组合原型模式和构造函数模式 使用原型定义实例共有的方法,使用构造函数为实例属性复制
```javascript
var CQueue = function() {
this.A=[];//这里队列通过this属性赋值,而不采用原型初始化,是为了隔离实例数据
this.B=[];
};
/**
* @param {number} value
* @return {void}
*/
CQueue.prototype.appendTail = function(value) {
// 由于数组长度没有限制,A数组可以一直添加数据
// if(!this.B.length){
// while(this.A.length){
// this.B.push(this.A.pop());
// }
// }
this.A.push(value);
};
/**
* @return {number}
*/
CQueue.prototype.deleteHead = function() {
if(!this.B.length){
while(this.A.length){
this.B.push(this.A.pop());
}
}
if(this.B.length){
return this.B.pop();
}else{
return -1;
}
};
/**
* Your CQueue object will be instantiated and called as such:
* var obj = new CQueue()
* obj.appendTail(value)
* var param_2 = obj.deleteHead()
*/