剑指Offer——(5)用两个栈实现队列
来源:互联网 发布:真有外星人吗 知乎 编辑:程序博客网 时间:2024/05/29 15:40
题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
实现如下:
//栈:先进后出 队列:先进先出//注意最后一个元素的转移优化//两个队列实现一个栈//stack1负责入栈,stack2负责出栈class Solution{public: void push(int node) { stack1.push(node); } int pop() { int x = 0; if (!stack2.empty())//stack2不为空,说明有数据,可以直接pop { x = stack2.top(); stack2.pop(); } else { //否则将stack1中的除最后一个的其余数据先pop再依次push到stack2中 while (!stack1.empty()) { x = stack1.top(); if (stack1.size() == 1) { stack1.pop(); break; } else { stack1.pop(); stack2.push(x); } } } return x; }private: stack<int> stack1; stack<int> stack2;};
0 0
- 《剑指offer》—5、用两个栈实现队列
- 剑指offer(5)—用两个栈实现队列
- 《剑指offer》——用两个栈实现队列
- 《剑指offer》——用两个栈实现队列
- 剑指offer——用两个栈实现队列
- 用两个栈实现队列——剑指offer
- 剑指offer——用两个栈实现队列
- 剑指offer——用两个栈实现队列
- 剑指offer——用两个栈实现队列
- 剑指offer——用两个栈实现队列
- 剑指offer——用两个栈来实现队列
- 剑指offer(5)-用两个栈实现队列
- 剑指offer--(5) 用两个栈实现队列
- 剑指offer—用两个栈实现队列
- 牛客网—剑指offer-用两个栈实现队列
- 牛客网—剑指offer-用两个栈实现队列
- 剑指offer—用两个栈实现队列
- 剑指Offer——(5)用两个栈实现队列
- Linux 内核中逻辑地址/虚拟地址/线性地址三者的区别
- JDBC连接MySQL数据库小例子
- Scala特征
- 内存与cpu工作原理
- css实现强制不换行/自动换行/强制换行
- 剑指Offer——(5)用两个栈实现队列
- UVA 10382 Watering Grass 贪心
- 正则表达式使用总结
- 运维学习第十一天
- allocated fishing
- GDOI2017酱油记+对本赛季的一些分析
- Bootstrap 前端框架制作响应式网站
- cc254x、cc2640微信airsync协议心得
- 老司机带你探知存储伸缩之道,赶紧上车,来不及了!