题6:用两个栈实现队列
2018-01-28 20:02
141 查看
题目: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。
using namespace std; template <typename T> class MyQueue { public: MyQueue(); ~MyQueue(); void appendTail(const T& node); T deleteHead(); private: stack<T> stack1; stack<T> stack2; }; template <typename T> void MyQueue<T>::appendTail(const T& node) { stack1.push(node); } template <typename T> T MyQueue<T>::deleteHead() { if(stack2.size() <= 0) { while(stack1.size() > 0) { T& data = stack1.top(); stack1.pop(); stack2.push(data); } } if(stack2.size() == 0) { throw "queue is empty"; } T head = stack2.top(); stack2.pop(); return head; }
相关文章推荐
- 剑指offer编程题——07 两个栈实现队列
- 程序员面试题100题第18题——两个栈实现队列
- 用两个栈来实现一个队列
- 剑指offer 5 用两个栈实现队列
- 用两个栈实现一个队列
- 用两个栈实现队列
- 用两个栈如何实现队列?
- 两个队列实现栈(stack)
- 用两个栈实现队列和用两个队列实现一个栈
- 用两个栈实现队列
- 一张图展示:用两个栈来实现一个队列,完成队列的Push和Pop操作
- 两个队列实现一个栈-有错
- 用两个栈实现队列的过程
- 剑指Offer----面试题七:用两个栈实现队列
- 面试题7. 用两个栈实现队列
- leetcode:用两个栈实现一个队列 Implement Queue using Stacks
- 用两个队列实现栈
- [剑指offer][面试题07-扩展]用两个队列实现栈
- 剑指offer 面试题7 两个栈实现队列
- 5 用两个栈实现队列