IMWeb提升营Day1 | 训练题5: 用两个栈实现队列
2017-05-24 23:30
197 查看
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路
/* * 思路:两个栈实现一个队列 * --入队列:直接进栈1 * --出队列:从栈2出元素,判断队列2是否为空,如果已经弹空了点话就从栈1把元素都弹到栈2里来,然后再从栈2弹出元素 */ class Solution { public: void push(int node) { stack1.push(node); } int pop() { int a; if(stack2.empty()){ while(!stack1.empty()){ a = stack1.top(); stack2.push(a); stack1.pop(); } } a = stack2.top(); stack2.pop(); return a; } private: stack<int> stack1; stack<int> stack2; };
举例一返二:
两个队列实现一个栈的思路:
–入栈:直接进队列1
–出栈:判断队列1里是不是只有一个元素,是的话直接从队列1里面出,如果是多于一个元素的话,就把之前先进来的放到队列2里面去,把最后一个进队列1的元素弹出,实现出栈的效果,然后再把队列2的元素都放回队列1.
相关文章推荐
- IMWeb提升营Day1 | 训练题5: 用两个栈实现队列
- IMWeb提升营Day1 | 训练题4:重建二叉树
- IMWeb提升营Day3 | 训练题16:合并两个排序的链表
- IMWeb提升营Day1 | 训练题3:从尾到头打印链表
- IMWeb提升营Day6 | 训练题36:两个链表的第一个公共结点
- 两个栈实现一个队列
- 用两个栈实现一个队列的功能...
- 程序员面试题精选100题(18)-用两个栈实现队列
- 用两个堆栈实现一个队列
- 用两个栈实现一个队列的功能
- 用两个栈实现一个队列的功能 && 两个队列实现一个栈的功能 && 代码实例
- 2.用两个顺序存储结构的栈实现一个队列
- 程序员面试题精选(48):两个堆栈模拟队列c++代码实现
- 用两个栈实现一个队列
- 用两个栈实现队列
- 算法导论10.1-6习题解答(用两个栈实现一个队列)
- 微软,Google面试题 (18) —— 用两个栈实现一个队列
- 用两个栈实现一个队列的功能
- 程序员面试题精选(18):用两个栈实现队列
- 【题目5】如何使用两个栈来实现一个队列