【剑指Offer】面试题7:用两个栈实现队列
来源:互联网 发布:c语言中调用文本文件 编辑:程序博客网 时间:2024/06/06 20:06
一:题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
二:解题思路
队列:先进先出
栈:先进后出
如果将栈1的元素依次push到栈2中,则栈2的出栈顺序与队列的出队顺序是相同的
所以:
利用栈1保存队列的入队操作
利用栈2的出栈实现队列的出队操作
三:代码实现
class Solution{public: void push(int node) { stack1.push(node); } int pop() { int popNum; int numStack1Top; //如果栈2为空 if(stack2.empty()){ //将栈1的元素依次入栈2,栈顶元素即要出队的元素 while(stack1.size()>0){ numStack1Top=stack1.top(); stack1.pop(); stack2.push(numStack1Top); } } if(stack2.size()==0){ isException=true; return INT_MIN;//队列为空,不能进行出队操作 } //如果栈2不为空,直接弹出栈2的栈顶元素 popNum=stack2.top(); stack2.pop(); return popNum; }private: stack<int> stack1; stack<int> stack2; bool isException=false;};
阅读全文
0 0
- 剑指offer-->面试题7 用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指Offer:面试题7 用两个栈实现队列
- 《剑指Offer》面试题7:用两个栈实现队列
- 【剑指offer】 面试题7: 用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指offer-面试题7:用两个栈实现队列
- 剑指offer---面试题7 用两个栈实现队列
- 剑指offer面试题7:用两个栈实现队列
- 剑指Offer面试题7用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指offer面试题7:用两个栈实现队列
- 剑指offer--面试题7: 用两个栈实现队列
- 剑指offer-面试题7-用两个栈实现队列
- 【剑指offer】面试题7:用两个栈实现队列
- 剑指offer 面试题7 用两个栈实现队列
- 剑指offer面试题[7]-用两个栈实现队列
- 剑指Offer面试题7[用两个栈实现队列]
- android:如何获取root权限
- Java中final修饰参数的作用
- UDP协议服务器、客户端使用实例Demo
- superset安装部署
- 全景影像多层级瓦片生成
- 【剑指Offer】面试题7:用两个栈实现队列
- android:如何执行NDK
- css案例(一)
- 开发板选择的纠结
- JetBrain系列ide更换主题的方法
- (十三)Window的创建过程
- Git入门
- VMware Workstation12 运行winxp 速度缓慢问题的解决
- c++