LeetCode 225. Implement Stack using Queues

Posted co0oder

tags:

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

用queue模拟stack,因为queue只能取front的值,和stack正好相反,因此核心思想是queue保持着与stack相反的顺序,一直逆序,所以每次push进一个新值后,要依次把新值之前的值排到队尾。比如原来q为4、5,push进1,q依次为:4、5、1;5、1、4;1、4、5. 对应的stack最终值为:5、4、1.

 1 class Stack {
 2 public:
 3     // Push element x onto stack.
 4     void push(int x) {
 5         int size = q.size();
 6         q.push(x);
 7         for(int i = 0; i < size; ++i){
 8             int tmp = q.front();
 9             q.pop();
10             q.push(tmp);
11         }
12     }
13 
14     // Removes the element on top of the stack.
15     void pop() {
16         q.pop();
17     }
18 
19     // Get the top element.
20     int top() {
21         return q.front();
22     }
23 
24     // Return whether the stack is empty.
25     bool empty() {
26         return q.empty();
27     }
28 private:
29     queue<int> q;
30 };

 

以上是关于LeetCode 225. Implement Stack using Queues的主要内容,如果未能解决你的问题,请参考以下文章

leetcode?python 225. Implement Stack using Queues

LeetCode 225. Implement Stack using Queues

LeetCode 225 Implement Stack using Queues

[leetcode] 225. Implement Stack using Queues

LeetCode OJ 225Implement Stack using Queues

Leetcode 225 Implement Stack using Queues STL