在计算机资料结构的线性串列中,最常见的是堆叠及伫列。伫列是一有序串列,若所有的插入作业在该串列的一边进行,而所有的删除作业在该串列的另外一边进行,则此有序串列称为伫列;而插入那边称为后部(Rear),删除那边称为前部(Front)。即最先加入者最先被删除,所以伫列常被称为先进先出(First In First Out,简称FIFO)串列。伫列结构为:
(一)伫列的建立必须能取得首(前端)尾(末端),以便由末端进行插入,而由前端删除。
(二)任何时候,只要到达与离去的次数相同,则伫列就会变空。
(三)某项事物插入末端位置时,伫列就有所增长。
(四)伫列中唯一可以取出的值是位于前端项目的值。
(五)如果要取出伫列内部其他项的值,则必须先移除前端项目。
(六)伫列的大小随插入与删除而改变,因此是动态的。
(七)虽然只能由前端与末端直接存取,但伫列的存取必须非常有效率。
伫列的用途是有时被选用以模拟一种蔓延的自然系统:等待列(Waiting Line)。等待列在许多系统中是无法避免的,实体等待通过伫列的时间序列,其影响可能很复杂,但资料结构Queue本身则相当简单。伫列是动态而立即的结构,其空间及时间的使用效率很高。最重要的是伫列具有保存器(Retainer)的功能,能维持实体原有的输入次序,在必要时可重新产生。
伫列的行为是先进先出(FIFO)的,常见于等待列中,而只要到达序列与服务过程无法同步的地方,就会出现等待列。伫列的时间序列效应可能很复杂,但作为模型的资料结构则相当简单。伫列可以设计成串列,由末端插入,而由前端删除。也可以阵列设计成使用Front与Rear两个索引的单一阵列。
--作者:曾秋香