什么是队列(Queue)?

类似于链表和堆栈,队列也是存储数据的结构。队列中数据进入队列的顺序很重要,一般来说,队列就是一群人或者事物按照排好的顺序等待接受服务或者处理。

定义:队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。

和堆栈一样的,也有两种操作,进队(EnQueue)和出队(DeQueue),对于空队列进行出队操作会造成下溢出(underflow),相应的堆满队列进行进队操作为发生上溢出。参看下面的例图:

《什么是队列(Queue)?》

队列如何使用?

服务台前的一排人解释了队列的概念。当我们要接受服务时只能排在队列的最后面,队列最前面的人也就是正在或则将要接受服务的人,当他走出队列时也就是接受服务了。

当队列正在接受服务时,我们就会慢慢的往前挪,因为服务过的人都出了队列。最终我们到达队首,出列接受服务。在我们需要维持到来的顾客的顺序时这种规则就很有用。

直接应用:

  • 操作系统的调度作业(相同优先级的任务按顺序来到)。
  • 模拟现实世界的排队(例如售票亭门口的队列)。
  • 多通道程序设计。
  • 异步数据传输(file I/O, pipes, sockets)。
  • 呼叫中心顾客的等待时间。
  • 超市现金储蓄量的决定。

间接应用:

  • 辅助算法的数据结构。
  • 其他数据结构的组成。
    原文作者:programnote
    原文地址: https://www.cnblogs.com/programnote/p/4717250.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞