用两个栈实现队列
2017-07-18 10:47
225 查看
用两个栈实现队列
描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路
一个栈接收push数据,另一个栈在每次push数据时都要更新保证与第一个栈的数据正好颠倒。pop时,pop第二个栈的数据,同时更新第一个栈,同样要确保与第二个栈的数据正好颠倒代码
class Solution { public: void push(int node) { stack1.push(node); while (stack2.size()) stack2.pop();//清空 stack<int> temp; temp = stack1; for (int i = 0; i < stack1.size(); i++) {//更新,颠倒 stack2.push(temp.top()); temp.pop(); } return; } int pop() { int result = stack2.top(); stack2.pop(); while (stack1.size()) stack1.pop();//清空 for (int i = 0; i < stack2.size(); i++)//更新,颠倒 stack1.push(stack2.top()); return result; } private: stack<int> stack1; stack<int> stack2; };
相关文章推荐
- 用两个栈实现一个队列
- 用两个栈实现队列 【微软面试100题 第五十七题】
- 两个队列实现一个栈 + 两个栈实现一个队列 Java
- 用两个栈实现一个队列
- 编程用两个栈实现一个队列
- (p131)用两个栈实现一个队列,运行时间为o(n)
- 用两个栈实现队列
- 两个栈实现一个队列,两个队列实现一个栈
- <剑指offer 面试题9>用两个栈实现队列(Java)
- 两个队列实现栈
- 用两个栈实现一个队列的功能
- 队列--两个栈实现
- 用两个栈实现队列
- 程序员面试题精选(18):用两个栈实现队列
- 用两个栈实现队列
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。
- 剑指offer 用两个栈实现队列
- 用两个栈实现队列
- 两个栈实现队列 7
- 用两个栈实现一个队列——我作为面试官的小结