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

  • 相关阅读:
    【原创】Algorithms:原地归并排序
    Java中相等测试
    测试可变字符序列stringBuilder
    呃。。第一篇随笔。
    hiho兄弟的字典树之争(hiho1014)
    字典树
    最大公约数
    素数
    递归算法1
    logging模块,collections模块,random模块
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4767959.html
Copyright © 2011-2022 走看看