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

(leetcode)Implement Stack using Queues

时间:2015-08-04 15:34:50      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:

Implement the following operations of a stack using queues.

  • push(x) -- Push element x onto stack.
  • pop() -- Removes the element on top of the stack.
  • top() -- Get the top element.
  • empty() -- Return whether the stack is empty.

Notes:

  • You must use only standard operations of a queue -- which means only push to back, peek/pop from front, size, and is empty operations are valid.
  • Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
  • You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).

 

Update (2015-06-11):
The class name of the Java function had been updated to MyStack instead of Stack.

Credits:
Special thanks to @jianchao.li.fighter for adding this problem and all test cases.

 

用一个队列就可实现,看了很多例子觉得discuss里面有个朋友写的很简练,就用了他的丝路,和她基本一致

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

 

(leetcode)Implement Stack using Queues

标签:

原文地址:http://www.cnblogs.com/chdxiaoming/p/4701978.html

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