[leetcode]: 232. Implement Queue using Stacks
2017-05-26 15:12
381 查看
1. 题目
Implement the following operations of a queue using stacks.push(x) – Push element x to the back of queue.
pop() – Removes the element from in front of queue.
peek() – Get the front element.
empty() – Return whether the queue is empty.
用栈实现队列。
2.分析
队列的特点:先进先出栈的特点:先进后出
可以通过两个栈来实现队列。一个栈s1负责处理输入数据(push),一个栈s2负责处理输出数据(pop,top)
如下流程:
push(1,2,3)–压入栈s1
pop() –pop的结果应该是1出队列,所以需要将s1中的元素转移到s2,然后在s2中pop
push(4)—压入栈s1
pop()–2需要出队列,s2不为空,直接在s2中pop
3.代码
class MyQueue { public: MyQueue() {} void push(int x) { s1.push(x); } int pop() { peek(); s2.pop(); } int peek() { if (s2.empty()) { while (!s1.empty()) { s2.push(s1.top()); s1.pop(); } } return s2.top(); } bool empty() { return s1.empty() && s2.empty(); } private: stack<int> s1; stack<int> s2; };
相关文章推荐
- Leetcode 232. Implement Queue using Stacks
- leetcode-标签为stack 232. Implement Queue using Stacks
- [leetcode]232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks
- LeetCode 232. Implement Queue using Stacks
- 【leetcode】232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks 双栈实现队列
- Leetcode 232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks
- LeetCode 232. Implement Queue using Stacks
- LeetCode 232. Implement Queue using Stacks(用栈实现队列)
- Leetcode232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks
- leetcode 232. Implement Queue using Stacks-栈模拟队列
- leetcode 225|232. Implement Stack using Queues 232. Implement Queue using Stacks
- 232. Implement Queue using Stacks LeetCode
- leetcode232. Implement Queue using Stacks
- LeetCode :232. Implement Queue using Stacks(剑指offer面试题)