面试题7:用两个栈实现队列
2017-05-09 19:31
232 查看
剑指Offer面试题7:用两个栈是实现队列(JS实现)
题目描述::用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deletedHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。
//栈 function Stack(){ var items = []; this.push = function(element){ items.push(element); } this.pop = function(){ return items.pop(); } //返回栈顶元素 this.peek = function(){ return items[items.length-1]; } this.isEmpty = function(){ return items.length === 0; } this.size = function(){ return items.length; } this.clear = function(){ items = []; } this.print = function(){ console.log(items.toString()); } } //用两个栈实现队列 function Queue() { var stack1 = new Stack(); var stack2 = new Stack(); //向队列的尾部添加元素 this.appendTail = function(element) { stack1.push(element); } //从队列头部移除元素 this.deleteHead = function() { if(stack2.size() <= 0) { while(stack1.size() > 0) { stack2.push(stack1.pop()); } if(stack2.size() === 0) { return false; } } return stack2.pop(); } } var queue = new Queue(); queue.appendTail(5); queue.appendTail(8); queue.appendTail(15); queue.appendTail(2); queue.appendTail(9); console.log(queue.deleteHead()); queue.appendTail(100); console.log(queue.deleteHead());
相关文章推荐
- 【面试题】剑指Offer-7-两个栈实现一个队列
- 面试题 用两个栈实现一个队列
- 面试题7用两个栈实现队列
- 高频面试题之三种方法实现两个栈实现一个队列
- 面试题7. 用两个栈实现队列
- 剑指offer--面试题9:用两个栈实现队列
- 程序员面试题精选100题(18)-用两个栈实现队列
- 面试题:用两个队列实现一个栈
- 【面试题7】用两个栈实现队列
- 剑指offer面试题7:用两个栈实现队列&用两个队列实现栈
- 剑指Offer学习之面试题7:用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 面试题 两个队列实现栈
- 面试题6:用两个栈实现队列
- 面试题8:用两个栈实现一个队列
- 剑指offer面试题7:用两个栈实现队列
- 面试题7:用两个栈实现队列
- 47. 腾讯面试题: 用两个栈实现队列
- 《剑指Offer》面试题七之用两个栈实现队列
- 剑指Offer-【面试题07:两个栈实现队列】