• 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 };
  • 相关阅读:
    可以foreach的 必须继承IEnumable 接口才行
    .net 委托的用法
    匿名类的使用
    检测到有潜在危险的 Request.Form 值——ValidateRequest的使用
    IsPostBack用法
    Ajax 与 jquery
    好用的模板引擎NVelocity
    题解【AcWing275】[NOIP2008]传纸条
    题解【AcWing274】移动服务
    题解【AcWing271】杨老师的照相排列
  • 原文地址:https://www.cnblogs.com/zl1991/p/4670123.html
Copyright © 2020-2023  润新知