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;
    };

  • 相关阅读:
    eWebEditor在ie9下按钮功能失效的解决办法
    FLV视频播放代码
    笔记 PHP常用 语句
    jquery 无刷新加载执行,显示数据
    常用的PHP与SQL语句
    PHP常用语句
    Ajax+php 无刷新更新数据.并将数据库操作改写成类.
    js下拉框联动代码
    PHP 更新功能 笔记
    MyEclipse8.5开发环境配置中SVN插件安装重点解析
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4767959.html
Copyright © 2011-2022 走看看