[LeetCode] Implement Queue using Stacks
Posted immjc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] Implement Queue using Stacks相关的知识,希望对你有一定的参考价值。
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.
Notes:
- You must use only standard operations of a stack -- which means only
push to top
,peek/pop from top
,size
, andis empty
operations are valid. - Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
- You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
使用两个栈实现一个队列。
class MyQueue { public: /** Initialize your data structure here. */ MyQueue() { } /** Push element x to the back of queue. */ void push(int x) { while (!s_out.empty()) { int tmp = s_out.top(); s_in.push(tmp); s_out.pop(); } s_in.push(x); } /** Removes the element from in front of queue and returns that element. */ int pop() { int tmp = peek(); s_out.pop(); return tmp; } /** Get the front element. */ int peek() { while (!s_in.empty()) { int tmp = s_in.top(); s_out.push(tmp); s_in.pop(); } return s_out.top(); } /** Returns whether the queue is empty. */ bool empty() { return s_in.empty() && s_out.empty(); } private: stack<int> s_in, s_out; }; // 0 ms /** * Your MyQueue object will be instantiated and called as such: * MyQueue obj = new MyQueue(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.peek(); * bool param_4 = obj.empty(); */
以上是关于[LeetCode] Implement Queue using Stacks的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Implement Queue using Stacks
[LeetCode]Implement Stack using Queues
LeetCode:Implement Queue using Stacks
LeetCode:Implement Stack using Queues