1.什么是队列
类似于食堂排队打饭,一个一个往前排入队伍里,就是入队;而打完饭从头到尾一个一个出来,就是出队。
队列就是你排队的那个队伍。
2.什么是循环队列
比如某食堂的奇葩规定:每次打饭只能挑选一种菜。而想吃两种菜的你不得不排队两次,重新回到队伍里。
或比如前面排队打饭的人走了,后面要打饭的人跟上步伐,整个队伍的人数不变,不断有人出来,又不断有人进去,实现入队出队的循环。
3.循环队列的代码块
这里用结构体封装的方式模拟数组入队出队的过程
首先需要用到的预处理指令是:
#include<stdio.h>//标准输入输出
#include<malloc.h>//动态申请内存
#include<assert.h>//判空
#define MAX 10//数组容量
判空头文件提供了一个assert函数,用来防止内存申请失败引发程序崩溃。
然后就是队列结构体的封装。
typedef struct Queue {
int* pMemory;//后续申请内存的指针
int topSize;//头队列标记
int tailSize;//尾队列标记
int CurSize;//当前入队数
}*LPQUEUQ,QUEUE;
然后可以封装一个函数实现Queue的创建及其初始化。
LPQUEUQ CreateQueue() {
LPQUEUQ queue =