用两个栈实现队列
来源:互联网 发布:java map遍历 编辑:程序博客网 时间:2024/06/04 01:04
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
思路:
①将一行数1,2,3,4,5 入s1栈,然后再将栈s1中的数据入s2栈,得到顺序。
②但如果取栈中某一个元素,然后继续压栈.如:压入1,2,3。然后1出栈,再压入4,5, 然后2出栈。情况如下图。
③本题还有一个坑就是要进行异常处理,当两个栈都没有元素,此时如果执行出栈操作,将会抛出异常。
代码如下所示:
class Solution{public: void push(int node) { stack1.push(node); } int pop() { int num = 0; while (!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } if (stack2.empty()) { throw; } else { num = stack2.top(); stack2.pop(); } while (!stack2.empty()) { stack1.push(stack2.top()); stack2.pop(); } return num; }private: stack<int> stack1; stack<int> stack2;};
0 0
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- leetcode第三题: 输出不包含重复字母的最长子串
- Aladdin and the Flying Carpet [整数分解]
- camera视频学习笔记(1)
- 单独编译安装PDO_MySQL
- Oracle 11g R2 RSF(Recurive Subquery factoring)
- 用两个栈实现队列
- 链表
- 北京理工大学2002年机试(A)
- angular2中自定义window对象
- 图结构练习——BFSDFS——判断可达性
- 十七、Hive 表数据加载、导出、查询
- 访问量分类统计(QQ,微信,微博,网页,网站APP,其他)
- Android中的下拉刷新
- ZOJ 3210 A Stack or A Queue ?