定义
队列(queue)是一种先进先出的线性表,简称FIFO。在表一端(表尾)插入,在另一端(表头)删除。
特点
- 在表一端(表尾)插入,在另一端(表头)删除的线性表。
- 表的插入操作称为入队,表的取出操作称为出队。
- 队列的存储结构分为顺序存储或链式存储,顺序存储称为顺序队,链式存储称为链队。以循环顺序队列更常见。
- 队列分为两种:双向队列和单向队列 。
- 单向队列(队列):只能在一端删除数据,另一端插入数据。
- 双向队列(双端队列):两端都可以进行插入数据和删除数据操作。
循环队列基本操作
顺序循环结构的实现
//顺序循环队列的结构体定义如下:
typedef struct
{
DataType queue[MaxQueueSize];
int rear; //队尾指针
int front; //队头指针
int count; //计数器
} SeqCQueue;
//(1)初始化QueueInitiate(Q)
void QueueInitiate(SeqCQueue *Q)
{
Q->rear = 0;