zoukankan      html  css  js  c++  java
  • leetcode刷题笔记 232题 用栈实现队列

    leetcode刷题笔记 232题 用栈实现队列

    源地址:232. 用栈实现队列

    问题描述:

    使用栈实现队列的下列操作:

    push(x) -- 将一个元素放入队列的尾部。
    pop() -- 从队列首部移除元素。
    peek() -- 返回队列首部的元素。
    empty() -- 返回队列是否为空。

    示例:

    MyQueue queue = new MyQueue();

    queue.push(1);
    queue.push(2);
    queue.peek(); // 返回 1
    queue.pop(); // 返回 1
    queue.empty(); // 返回 false

    说明:

    你只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。
    你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。
    假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)。

    //使用两个栈实现 首先入栈fStack ,出栈前先将fStack去栈,lStack取出栈结果即可
    import scala.collection.mutable.Stack
    class MyQueue() {
    
        /** Initialize your data structure here. */
        val fStack = Stack.empty[Int]
        val lStack = Stack.empty[Int]
    
        /** Push element x to the back of queue. */
        def push(x: Int) {
            fStack.push(x)
        }
    
        /** Removes the element from in front of queue and returns that element. */
        def pop(): Int = {
            reset()
            lStack.pop()
        }
        
        def reset(): Unit = {
            if (lStack.isEmpty){
                while (fStack.nonEmpty){
                    lStack.push(fStack.pop())
                }
            }
        }
    
        /** Get the front element. */
        def peek(): Int = {
            reset()
            lStack.head
        }
    
        /** Returns whether the queue is empty. */
        def empty(): Boolean = {
            fStack.isEmpty && lStack.isEmpty
        }
    
    }
    
    /**
     * Your MyQueue object will be instantiated and called as such:
     * var obj = new MyQueue()
     * obj.push(x)
     * var param_2 = obj.pop()
     * var param_3 = obj.peek()
     * var param_4 = obj.empty()
     */
    
  • 相关阅读:
    Web应用Word生成
    记 Ubuntu14.04 Monodevelop 安装的两个问题
    CSDN上下载的一些关于Android程序调用Webservice执行不成功的问题
    Binary Search Tree Iterator
    算法之贪心算法
    《SAS编程与数据挖掘商业案例》学习笔记之十七
    数据库设计之半结构化存储
    Timus 1446. Sorting Hat 分类问题
    WebGL on iOS8 最终等到了这一天
    仿netty线程池简化版本
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13839098.html
Copyright © 2011-2022 走看看