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

225 Implement Stack using Queues(用队列实现栈)

时间:2015-06-17 10:52:17      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:

题目意思:用队列实现栈,push(),pop(),top(),empty()

思路:用两个queue,pop时将一个queue的元素pop再push到另一个队列,queue只留最后一个元素,并pop,再将目标队列变为另一个

  ps:用栈实现队列,参考剑指offer

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

 

225 Implement Stack using Queues(用队列实现栈)

标签:

原文地址:http://www.cnblogs.com/smallby/p/4582421.html

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