概念
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
注意
1、队列是一种先进先出(FirstinFirstOut)的线性表,简称FIFO。
2、允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)。
3、队列只允许在一端插入,在另一端删除。
4、最早进入队列的元素才能最先从队列中删除。
5、在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。
6、队列可分为顺序队列、链式队列、循环队列(可参见其它文章),循环队列可以提高队列空间的利用率,因此在实际应用中一般采用循环队列的方式。
7、队列可以使用数组和链表两种方式实现,数组的实现方式必须先确定栈的空间大小,相对而言,没有那么灵活,所以建议采用链表的方式实现。
核心
理解队列主要是理解队头、队尾、入队和出队。
队头(front):指向允许元素删除的一端。
队尾(rear):指向允许元素插入的一端。
入队(push):在队列中插入元素的操作。
出队(pop):在队列中删除元素的操作。
示例
★包含头文件queue_array.h和源文件queue_array.c(均已验证通过)。
queue_array.h
/***
Filename:queue_array.h*Revision:$Revision:1.0$*Author:Feng(