对于队列我们并不陌生,商场、银行的柜台前需要排队,餐厅的收款机旁也需要排队。队列也是一种特殊的线性表,是一种只允许在表的一端进行插入操作而在另一端进行删除操作的线性表。表中允许进行插入操作的一端称为队尾,允许进行删除操作的一端称为队头队头和队尾分别由队头指示器(或称队头指针)和队尾指示器(或称队尾指针)指示。当队列中没有数据元素时,称之为空队列。队列的插入操作通常称为进队列或入队列,队列的删除操作通常称为退队列或出队列。
根据队列的定义,每次进队列的数据元素都放在原当前队尾之后而成为新的队尾元素,每次出队列的数据元素都是原队头元素。这样,最先入队列的数据元素总是最先出队列,因此,队列具有“先进先出” (FIFO:First In First Out)的特性。图5.10是队列及其操作的示意图。

???????
图5.10 队列及其操作的示意图
???? 队列的应用也很广泛,它可以用于各种应用系统中的事件规划、事件模拟,例如银行和商场的顾客队列;计算机操作系统中的各种资源请求排队和各种数据缓冲区的先进先出管理也用队列来实现,如操作系统用队列来处理打印作业的调度。