6.5.3 队列

队列(queue)也是数据集合体,其中的数据成员有序排列。与堆栈的“后进先出”相 反,队列具有“先进先出(FIFO)”的性质,即最先加入队列的数据将最先移出队列。现实 生活中,当很多人等待某项服务时,通常需要排队,这就是队列,排在最前面的人最先获得 服务。参见图 6.12。

图 6.12 队列

队列也是一种抽象数据类型,完全由操作定义其特性。与堆栈的 push/pop 类似,队列的两个主要操作是:

  • enqueue:入队,即在队列尾部添加数据;

  • dequeue:出队,即将队列头部的数据移出队列作为返回值。

队列的具体实现有多种方式,例如可以用顺序列表、链表来实现队列。由于队列和堆栈 具有相似性,所以这里不展开介绍了。作为练习,读者可以模仿上一节的例子,用列表来实 现队列。