leetcode- 232. Implement Queue using Stacks
Posted 哈哈哈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode- 232. Implement Queue using Stacks相关的知识,希望对你有一定的参考价值。
使用栈实现队列:
将栈中的元素取出再存入一次就是队列:
class MyQueue { public: /** Initialize your data structure here. */ MyQueue() { } /** Push element x to the back of queue. */ void push(int x) { s.push(x); } /** Removes the element from in front of queue and returns that element. */ int pop() { stack<int> s1; while(!s.empty()) { int t=s.top(); s.pop(); s1.push(t); } int t=s1.top(); s1.pop(); while(!s1.empty()) { int t=s1.top(); s.push(t); s1.pop(); } return t; } /** Get the front element. */ int peek() { stack<int> s_tem=s; while(s_tem.size()>1) { s_tem.pop(); } return s_tem.top(); } /** Returns whether the queue is empty. */ bool empty() { return s.empty(); } private: stack<int> s; }; /** * 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(); */
更简单一点实现,pop和top的实现互相借助时:
class MyQueue { public: stack<int> S1, S2; /** Initialize your data structure here. */ MyQueue() { } /** Push element x to the back of queue. */ void push(int x) { S1.push(x); } /** Removes the element from in front of queue and returns that element. */ int pop() { int v = -1; if (!S2.empty()) { v = S2.top(); S2.pop();} else { while(!S1.empty()) { S2.push(S1.top()); S1.pop(); } v = S2.top(); S2.pop(); } return v; } /** Get the front element. */ int peek() { if (!S2.empty()) return S2.top(); else { while(!S1.empty()) { S2.push(S1.top()); S1.pop(); } return S2.top(); } } /** Returns whether the queue is empty. */ bool empty() { return (S1.empty()) && (S2.empty()); } }; /** * 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- 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