一、队列的定义:
队列是只允许在一端进行插入,另一端进行删除的线性表
特点:先入队的元素先出队,先进先出
队尾:允许插入的一端
队头:允许删除的一端
front 指向队头元素
rear 指向队尾元素的后一个元素(下一个应该插入的位置)
注意:具体题目中的rear 和 front 可能会跟上面不同,代码实现会有所区别
二、队列的顺序存储的实现
1.定义与初始化
#define MaxSize 10
typedef struct
{
int data[MaxSize]; //静态数组存放队列
int front,rear; //队头指针和队尾指针
}SqQueue;
void InitQueue(SqQueue &Q)
{
//初始化时 队头、队尾指针指向0
Q.rear = Q.front = 0;
}
void testQueue()
{
SqQueue Q;//声明一个队列(顺序存储)
InitQueue(Q);
}
2.入队与出队
循环队列:将存储空间在逻辑上变成“环状”