码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 225. Implement Stack using Queues

时间:2016-04-04 21:00:17      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

用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

标签:

原文地址:http://www.cnblogs.com/co0oder/p/5352774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!