队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
定义: 只允许在表的一端插入元素,而在另一端删除元素。是一种限定性的先进先出(FIFO)的线性表。
-
队尾(rear):在队列中,允许插入的一端。
-
队头(front):在队列中,允许删除的一端。
-
入队(EnQueue): 在队列中,插入的过程。
-
出队(DeQueu): 在队列中,删除的过程。
顺序队列
链队列
存储结构定义如下:
typedef struct QNode{
QElemType data; //数据域
struct QNode *next; //指针域
}QNode, *QueuePtr;
typedef struct{
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
}LinkQueue;
基本操作:初始化、销毁队列、入队、出队
尾插法入队。