zoukankan      html  css  js  c++  java
  • [LeetCode] 232

    Implement the following operations of a queue using stacks.

    • push(x) -- Push element x to the back of queue.
    • pop() -- Removes the element from in front of queue.
    • peek() -- Get the front element.
    • empty() -- Return whether the queue is empty.

    Notes:

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

    class Queue {
    public:
      // Push element x to the back of queue.
      void push(int x) {
        m_inStack.push(x);
      }

      // Removes the element from in front of queue.
      void pop(void) {
        if (m_outStack.empty()) {
          if (m_inStack.empty()) {
            return;
          }
          while (!m_inStack.empty()) {
            int val = m_inStack.top();
            m_inStack.pop();
            m_outStack.emplace(val);
          }
        }
        m_outStack.pop();
      }

      // Get the front element.
      int peek(void) {
        if (m_outStack.empty()) {
          if (m_inStack.empty()) {
            return -1;
          }
          while(!m_inStack.empty()) {
            int val = m_inStack.top();
            m_inStack.pop();
            m_outStack.emplace(val);
          }
        }
        return m_outStack.top();
      }

      // Return whether the queue is empty.
      bool empty(void) {
        return (m_inStack.empty() && m_outStack.empty());
      }
    private:
      stack<int>m_inStack;
      stack<int>m_outStack;
    };

  • 相关阅读:
    交换机的配置文件和系统映像文件备份与恢复(如果不小心损坏了,可以用这种方法恢复)
    交换机端口安全配置
    路由器密码重置(不是适用于所有有些启动顺序数字不一样)
    交换机的默认网关(跨网段telnet)
    思科交换机的初始配置(使用telnet登录)
    Linux命令集(第一部分共40个)
    Linux6.9安装
    javamail邮件发送报错解决方案
    isEmpty()与equals()、==“”区别
    eclipse svn 修改了类名之后提交
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4767959.html
Copyright © 2011-2022 走看看