zoukankan      html  css  js  c++  java
  • scala 数据结构(五):队列 Queue

    1 队列 Queue-基本介绍

    队列的说明

    1)队列是一个有序列表,在底层可以用数组或是链表来实现。

    2)其输入和输出要遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出

    3)在Scala中,由设计者直接给我们提供队列类型使用。

    4)在scala中, 有 scala.collection.mutable.Queue 和 scala.collection.immutable.Queue , 一般来说,我们在开发中通常使用可变集合中的队列。

    2 队列 Queue-队列元素的追加数据

    向队列中追加单个元素和List

    val q1 = new Queue[Int]
    q1 += 20 // 底层? 
    println(q1)
    
    q1 ++= List(2,4,6) // 
    println(q1)
    
    //q1 += List(1,2,3) //泛型为Any才ok
    println(q1)
    //补充操作符重载...
    val cat = new Cat
    println(cat.age)
    cat += 9
    println(cat.age)
    class Cat {
      var age: Int = 10
      def +=(n:Int): Unit = {
        this.age += n
        println("xxx")
      }
    }

    3  队列 Queue-删除和加入队列元素

    按照进入队列的顺序删除元素(队列先进先出)

    val q1 = new mutable.Queue[Int]//
    q1 += 12
    q1 += 34
    q1 ++= List(2,9)
    q1.dequeue() //队列头
    println(q1)
    q1.enqueue(20,60) //队列位
    println(q1)

    4  队列 Queue-给队列添加元素

    说明

    按照队列的算法,会将数据添加到队列的最后。

    应用案例

    q1.enqueue(9, 8, 7)

    println(q1)

    5 队列 Queue-返回队列的元素

    返回队列的第一个元素

    println(q1.head)

    返回队列最后一个元素

    println(q1.last)

    返回队列的尾部

    即:返回除了第一个以外剩余的元素, 可以级联使用,这个在递归时使用较多。

    println(q1.tail)

    println(q1.tail.tail)

  • 相关阅读:
    npx vs npm
    RubyGem镜像/ruby国内镜像
    IOS开发依赖管理工具CocoaPods
    alpine linux
    阿里妈妈图标库
    java应用系统运行速度慢的解决方法
    jvm程序执行慢诊断手册
    js强制不使用“兼容性视图”
    java.lang.NumberFormatException: Infinite or NaN
    ALTER添加列后,立即UPDATE该列会报错
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13264173.html
Copyright © 2011-2022 走看看