LeetCode 225: Implement Stack using Queues
来源:互联网 发布:java finalize作用 编辑:程序博客网 时间:2024/05/21 09:41
Implement the following operations of a stack using queues.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- empty() -- Return whether the stack is empty.
- You must use only standard operations of a queue -- which means only
push to back
,peek/pop from front
,size
, andis empty
operations are valid. - Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
- You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).
用两个队列模拟一个堆栈:
队列a和b
(1)取栈顶元素: 返回有元素的队列的首元素
(2)判栈空:若队列a和b均为空则栈空
(3)入栈:a队列当前有元素,b为空(倒过来也一样)则将需要入栈的元素先放b中,然后将a中的元素依次出列并入列倒b中。(保证有一个队列是空的)
(4)出栈:将有元素的队列出列即可。
比如先将1插入队a中 ,现在要将2入栈,则将2插入b总然后将a中的1出列入到b中,b中的元素变为 2 ,1
a为空,现在要压入3 则将3插入a中 ,依次将b中的2 ,1 出列并加入倒a中 ,a中的元素变为 3,2,1 b为空
算法保证在任何时候都有一队列为空
代码如下:class Stack {public:// Push element x onto stack.queue<int> queue1;queue<int> queue2;void push(int x) {if (queue1.empty()){queue1.push(x);while(!queue2.empty()){int tmp = queue2.front();queue2.pop();queue1.push(tmp);}}else{queue2.push(x);while(!queue1.empty()){int tmp = queue1.front();queue1.pop();queue2.push(tmp);}}}// Removes the element on top of the stack.void pop() {if (!queue1.empty())queue1.pop();if (!queue2.empty())queue2.pop();}// Get the top element.int top() {if (!queue1.empty())return queue1.front();if (!queue2.empty())return queue2.front();}// Return whether the stack is empty.bool empty() {return queue1.empty() && queue2.empty();}};
3 0
- Implement Stack using Queues - LeetCode 225
- LeetCode 225: Implement Stack using Queues
- Leetcode[225]-Implement Stack using Queues
- leetcode 225: Implement Stack using Queues
- leetcode 225 Implement Stack using Queues
- leetcode 225:Implement Stack using Queues
- [Leetcode 225, Easy] Implement Stack using Queues
- LeetCode---(225)Implement Stack using Queues
- leetcode-225-Implement Stack using Queues
- leetCode #225 Implement Stack using Queues
- [leetcode-225]Implement Stack using Queues(c++)
- [LeetCode 225] Implement Stack using Queues
- Leetcode #225 Implement Stack using Queues
- [leetcode 225] Implement Stack using Queues
- Leetcode NO.225 Implement Stack using Queues
- LeetCode(225) Implement Stack using Queues
- LeetCode 225 Implement Stack using Queues
- 【LEETCODE】225-Implement Stack using Queues
- Access denied for user 'root'@'localhost' (using password: NO)
- TCP 的有限状态机
- leetcode[217&219&220]:Contains Duplicate I&II&III
- switch语句能否作用在byte上,能否作用在long上,能否作用在String上
- linux入门基础——linux软件管理基础:YUM
- LeetCode 225: Implement Stack using Queues
- 容器Set
- short s1 = 1; s1 = s1 + 1和short s1 = 1; s1 += 1的区别
- JVM的基本垃圾回收算法
- arp hook
- Unity3d中制作Loading场景进度条(转)
- java.lang.reflect.MalformedParameterizedTypeException
- 第一天
- poj 3177 Redundant Paths