|
|
|
队列(queue)是一种只允许在一端进行插入,而在另一端进行删除的线性表,它是一种操作受限的线性表。在表中只允许进行插入的一端称为队尾(rear),只允许进行删除的一端称为队头(front)。队列的插入操作通常称为入队列或进队列,而队列的删除操作则称为出队列或退队列。当队列中无数据元素时,称为空队列。队头元素总是最先进队列的,也总是最先出队列;队尾元素总是最后进队列,因而也是最后出队列。这种表是按照先进先出(FIFO,first in first out)的原则组织数据的,因此,队列也被称为“先进先出”表。下面用C语言描述队列类型为:
|
|
|
|
|
|
队列分为链队列和循环队列。链队列主要采取顺序存储方式,下面主要介绍链队列的顺序存储。队列的顺序存储在c语言中可以用一维数组表示,为了标识队首和队尾,需要附设两个指针front和rear,front指示的是队列中最前面,即队首结点在数组中元素的下标,rear指示的是队尾结点在数组中元素的下标的下一个位置,也就是说rear指示的是即将插入的结点在数组中的下标。下图所示的是队列的几种状态:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
链队列还有链式存储结构,与顺序表的链式存储结构类似。循环队列的操作与链队列相似,这里就不再累述了。
|
|
|