Implement Stack using Queues

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 backpeek/pop from frontsize, 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.

复制代码
 1 class Stack {
 2 private:
 3     queue <int> q_1;
 4     queue <int> q_2;
 5 public:
 6     // Push element x onto stack.
 7     void push(int x) {
 8         if(q_1.empty())
 9           q_1.push(x);
10         else
11         {
12             while(!q_1.empty())
13             {
14                 q_2.push(q_1.front());
15                 q_1.pop();
16             }
17             q_1.push(x);
18             while(!q_2.empty())
19             {
20                 q_1.push(q_2.front());
21                 q_2.pop();
22             }
23         }
24     }
25 
26     // Removes the element on top of the stack.
27     void pop() {
28         q_1.pop();
29     }
30 
31     // Get the top element.
32     int top() {
33         return q_1.front();
34     }
35 
36     // Return whether the stack is empty.
37     bool empty() {
38         return q_1.empty();
39     }
40 };
复制代码

 

posted @   鸭子船长  阅读(163)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示