剑指Offer面试题7[用两个栈实现队列]
2017-07-19 17:34
357 查看
1.题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。2. 相关知识:
栈是先进后出,队列是先进先出3. 解答思路:
插入操作始终往一个栈中插入,弹出操作则从一个栈压入另一个栈,再从另一个栈中弹出,从而实现了先进先出。4. 代码实现:
#include <stdio.h> #include "stdafx.h" #include <stack> using namespace std; class Solution { public: void push(int node) { stack1.push(node); } int pop() { if (stack2.size() <= 0)//stack2为空,则将stack1中的数据全部压入stack2 { while (stack1.size()>0) { stack2.push(stack1.top()); stack1.pop(); } } if (stack2.size() == 0) printf("queue is empty!"); int head = stack2.top(); stack2.pop(); return head; } private: stack<int> stack1; stack<int> stack2; }; int _tmain(int argc, _TCHAR* argv[]) { Solution s; s.push(1); s.push(2); s.push(3); s.pop(); return 0; }
相关文章推荐
- 剑指offer 面试题7 两个栈实现队列
- 剑指offer面试题java实现之题7:用两个栈模拟一个队列的入队和出队操作
- 剑指Offer:面试题7 用两个栈实现队列
- 【剑指offer】面试题7:两个栈实现队列
- 剑指offer_面试题7_用两个栈实现队列(让我熟悉了类模板的使用)
- 剑指Offer----面试题七:用两个栈实现队列
- 剑指Offer面试题7用两个栈实现队列(附带用两个队列实现栈)
- 剑指offer之面试题7用两个栈实现一个队列
- 剑指offer——面试题7:用两个栈实现队列
- 剑指offer面试题7:用两个栈实现队列
- 剑指Offer面试题7(Java版):用两个栈实现队列与用两个队列实现栈
- 剑指Offer面试题7用两个栈实现队列
- 【剑指offer】面试题:两个队列实现栈
- 剑指offer面试题7——用两个栈实现队列
- 【剑指offer】2.3.5栈和队列——面试题7:用两个栈实现队列
- 剑指offer面试题7:用两个栈实现队列(Java实现)
- [剑指offer][面试题07]用两个栈实现队列
- 剑指offer---面试题7 用两个栈实现队列
- 剑指Offer面试题7:用两个栈实现队列 Java实现
- 【剑指offer】面试题07:用两个栈实现队列