• --对列--


    前言

    我们已经学习了一种受限的线性结构: 栈结构. 并且已经知道这种受限的数据结构对于解决某些特定问题, 会有特别的效果.

    下面, 我们再来学习另外一个受限的数据结构: 队列. 它也是一种受限的线性结构.

    队列

    一. 认识队列

    我们也先来认识一下队列, 看看它的特点和应用场景等.

    队列结构

    •  队列(Queue),它是一种运算受限的线性表,先进先出(FIFO First In First Out)
    • 队列是一种受限的线性结构
    • 受限之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作
    • 队列的图解
    • 队列在程序中的应用
    • 打印队列:
    • 有五份文档需要打印, 这些文档会按照次序放入到打印队列中.
    • 打印机会依次从队列中取出文档, 优先放入的文档, 优先被取出, 并且对该文档进行打印.
    • 以此类推, 直到队列中不再有新的文档.
    • 线程队列:
    • 在进行多线程开发时, 我们不可能无限制的开启新的线程.
    • 这个时候, 如果有需要开启线程处理任务的情况, 我们就会使用线程队列.
    • 线程队列会依照次序来启动线程, 并且处理对应的任务.

     

    队列的操作

    • 队列有哪些常见的操作呢?
    • enqueue(element):向队列尾部添加一个(或多个)新的项。
    • dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。
    • front():返回队列中第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动(不移除元素,只返回元素信息——与Stack类的peek方法非常类似)。
    • isEmpty():如果队列中不包含任何元素,返回true,否则返回false。
    • size():返回队列包含的元素个数,与数组的length属性类似。

     

    自定义对列:

     

        <script>

            // 自定义队列

    function Queue() {

        var items = []

        // 队列操作的方法

        // enter queue方法

        this.enqueue = function (element) {

            items.push(element)

        }

        // delete queue方法

    // 注意: 从队列中删除元素不可以删除最后一个元素了. 因为, 先进入队列中的元素, 先从队列中取出. 因此, 应该删除第一个元素

        this.dequeue = function () {

            return items.shift()

        }

        // 查看前端的元素

        this.front = function () {

            return items[0]

        }

        // 查看队列是否为空

        this.isEmpty = function () {

            return items.length == 0

        }

        // 查看队列中元素的个数

        this.size = function () {

            return items.length

        }

    }

        script>

    ​​​​​​​

  • 相关阅读:
    logistic回归列线图(nomogram)的多种绘制方法
    操作系统——进程同步、进程互斥及其实现方式、信号量机制
    因果发现方法概述
    [git]上传代码到github
    异或运算在面试题中的应用
    【Linux】kill 命令使用
    Jmeter(101)——Beashell中Script File的用法
    数据结构之图(最短路径问题)
    docker 安装 nginx 镜像 保姆级别教程
    软路由搭建:工控机(3865U)安装esxi并在esxi上创建iStoreOS做主路由(网卡直通)
  • 原文地址:https://blog.csdn.net/cjx177187/article/details/126484165