• [LeetCode]Implement Stack using Queues


    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).

    两个queue实现stack。

    q1移入q2,留下一个,就是top和pop的那个数了。

     1 class Stack {
     2 public:
     3     queue<int> q1,q2;
     4     // Push element x onto stack.
     5     void push(int x) {
     6         q1.push(x);
     7     }
     8 
     9     // Removes the element on top of the stack.
    10     void pop() {
    11         while(q1.size()>1)
    12         {
    13             int tmp = q1.front();
    14             q1.pop();
    15             q2.push(tmp);
    16         }
    17         q1.pop();
    18         while(q2.size()>0)
    19         {
    20             int tmp = q2.front();
    21             q2.pop();
    22             q1.push(tmp);
    23         }
    24     }
    25 
    26     // Get the top element.
    27     int top() {
    28         while(q1.size()>1)
    29         {
    30             int tmp = q1.front();
    31             q1.pop();
    32             q2.push(tmp);
    33         }
    34         return q1.front();
    35     }
    36 
    37     // Return whether the stack is empty.
    38     bool empty() {
    39         if(q1.empty() && q2.empty()) return true;
    40         else return false;
    41     }
    42 };
  • 相关阅读:
    PHP 数组函数分类整理
    mysql 数据库中 int(3) 和 int(11) 有区别么???
    理解PHP的运行机制
    类与对象
    PHP函数补完:call_user_func()
    linux 软件安装目录详解
    Linux下安装Redis
    Redis简介,应用场景,优势
    idea自动抽取变量快捷键设置
    全局捕获异常(适用于SpringMvc,SpringBoot项目)
  • 原文地址:https://www.cnblogs.com/Sean-le/p/4814081.html
Copyright © 2020-2023  润新知