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

  • 相关阅读:
    问题:关于抛出例外的一个问题。
    向北京球迷致敬!!!
    [下载]高质量C++C编程指南
    WinCE.NET中播放声音
    WINCE.NET中程序只运行一次
    解决vs2003开发PDA(wince.net4.2)调试与部署问题
    WinCE.NET中设置系统日期时间
    网页上发送mail(PHP)
    点阵字库预览工具 V1.0.0
    WINCE.NET4.2下如何获取程序当前运行目录
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4767959.html
Copyright © 2011-2022 走看看