剑指offer 用两个栈实现队列
来源:互联网 发布:911事件知乎 编辑:程序博客网 时间:2024/06/05 12:03
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路
1. push直接将队列中的值放在stack1里,这时候队列中的值在栈中是逆序的。
2. pop的时候,判断stack2是否为空。
为空,将stack1里的值放在stack2中,直到stack1为空,那么stack2存的就是队列中有顺序的值。
不为空,直接获取stack2栈顶的值,并pop。
代码
class Solution{public: void push(int node) { stack1.push(node); } int pop() { int res; if(stack2.empty()) { while(!stack1.empty()) { res = stack1.top(); stack2.push(res); stack1.pop(); } } res = stack2.top(); stack2.pop(); return res; }private: stack<int> stack1; stack<int> stack2;};
阅读全文
0 0
- [剑指offer]用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指Offer-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 《剑指offer》用两个栈实现队列
- 用两个栈实现队列(剑指offer)
- 剑指 offer:用两个栈实现队列
- 【剑指Offer】用两个栈实现队列
- 剑指offer-用两个栈实现队列
- 《剑指offer》-用两个栈实现队列
- 剑指offer 用两个栈实现队列
- 剑指offer 用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指offer|用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer----用两个栈实现队列
- Angular 4入门教程系列:12:TypeScript:类与接口
- Spring实战-装配bean
- 软件工程(C编码实践篇)学习总结
- H01 C++面向对象高级编程下作业解析
- 二. DrawerLayout侧拉 主方法内
- 剑指offer 用两个栈实现队列
- 判断网络
- HDU-1231 最大连续子序列 (浙大计算机研究生复试上机考试-2005年 线性dp)
- 深入Java设计模式之单例模式
- C++笔记(一):三大特性
- 排序
- Linux下安装Redis
- cheese摄像头灯黑屏问题(虚拟机中)
- Alienware 17 R4安装windows10与ubuntu16.04双系统