顺序队列
- 存放数据的队列数组当做收尾相接的表处理(对长度进行SIZE取余作为数组下标)
- 若定义队列数组长度为SIZE,能存放数据的只有SIZE-1个元素
- 队头,队尾指针从前进时从SIZE-1,直接进到0
- 队列满时,若rear向前进一步则会与front相遇
队头指针向前一步: front = (front + 1)%SIZE
队尾指针向前一步: rear = (rear + 1)%SIZE
顺序队列初始化时 : front = rear = 0
顺序队列满时: (rear + 1)%SIZE == front
顺序对列为空时: front == rear
构造顺序队列
定义顺序队列结构体,利用数组存放数据,将数组构成收尾循环的表,front和rear分别指向队列的头和尾
//定义链式结点
typedef struct _node
{
Data data;
struct _node *next;
}Node;
typedef struct _queue
{
Data data[SIZE]; //队列数组
int front; //队头指针
int rear; //队尾指针
}Queue;
顺序队列的初始化
void Init(Queue *q)
{
if (NULL == q)
r