LeetCode 232. Implement Queue using Stacks

Posted co0oder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 232. Implement Queue using Stacks相关的知识,希望对你有一定的参考价值。

和225类似,queue和stack的性质正好相反,因此在push时要进行处理。

维护两个stack:stk和tmp,stk存放与queue相反的顺序,比如queue为:1、4、5,stk为:5、4、1,这样stk.top()会一直等于queue.front()。

每次push进一个数x时,先把stk内的数全push进tmp中,再把x压入stk,最后把tmp中的数全push进stk,这样就保证了x在stk的栈底。

 1 class Queue {
 2 public:
 3     // Push element x to the back of queue.
 4     void push(int x) {
 5         while(!stk.empty()){
 6             tmp.push(stk.top());
 7             stk.pop();
 8         }
 9         stk.push(x);
10         while(!tmp.empty()){
11             stk.push(tmp.top());
12             tmp.pop();
13         }
14     }
15 
16     // Removes the element from in front of queue.
17     void pop(void) {
18         stk.pop();
19     }
20 
21     // Get the front element.
22     int peek(void) {
23         return stk.top();
24     }
25 
26     // Return whether the queue is empty.
27     bool empty(void) {
28         return stk.empty();
29     }
30 private:
31     stack<int> stk, tmp;
32 };

 

以上是关于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 OJ 232Implement Queue using Stacks

LeetCode 232. Implement Queue using Stacks