用两个栈实现队列
来源:互联网 发布:php框架类库有哪些 编辑:程序博客网 时间:2024/06/08 15:40
剑指offer面试题7
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。
template <typename Type>class CQueue{public: void appendTail(const Type& node); Type deleteHead();private: stack<Type> stack1;//入队 stack<Type> stack2;//将stack1的元素全部入到stack2中,再出};template<typename Type>void CQueue<Type>::appendTail(const Type& node){ stack1.push(node);}template<typename Type>Type CQueue<Type>::deleteHead(){ if(stack2.size() <=0 ) { while(!stack1.empty()) { Type& tmp = stack1.top(); stack1.pop(); stack2.push(tmp); } } if(stack2.size() == 0) throw new exception("queue is empty"); Type top = stack2.top(); stack2.pop(); return top;}int main(){ CQueue<int> q; for(int i=0;i<10;i++) q.appendTail(i); for(int i=0;i<10;i++) { int tmp = q.deleteHead(); cout<<tmp<<ends; } cout<<endl; return 0;}
阅读全文
0 0
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- epoch,batchsize,iter的理解
- Python全局解释器锁(Global Interperter Lock, GIL)
- Cookie与Session总结
- hdu 3622 Bomb Game (二分+2-sat)
- Banner实现自动轮播外加小圆点
- 用两个栈实现队列
- ROS下通过MoveIt控制UR5机器人的运动
- HttpClient+HttpURLConnection02
- 网页动画
- 沙子合并、石子合并、能量项链解题报告。
- VS2013+OpenCV3.3安装教程,一次配置,永久使用
- Excel数据透视表有什么用途?
- 并查集模板
- HDU-5919 Sequence II 主席树二分