1、用数组实现队列时,需要两个下标标记队列头部与尾部。循环数组就是当尾部下标超出数组容量时,如果数组头部还有空间,则将队列数据添加到数组头部。一个循环数组的示意图如下:
2、队列中包含头部、尾部下标,保存数据的数组以及数组容量。按照上图中设计思想,我们定义队列结构如下:
3、初始化队列:传入预期队列最大容量,并初始化队列结构并赋初始值
4、我们用两个下标标记队列的头尾部,当下标相等时表示队列为空;当尾部下标的下一个值为头部下标时,表示队列已满。实现逻辑如下:
5、入列操作,将撕良滤儆值赋值给尾部下标,并修改尾部下标,累加。如果尾部下标超出数组的最大下标,则将尾部下标设置为0。入列时,如果队列已满情况下,我们动态的增加数组大小,重新申请内存创建队列。
6、出列与获取头部数据操作,与入列操作类似,获取头部下标数据。出列操作时,需要对头部下标累加,调整头部下标值。
7、编写验证程序,首先创建初始大小为32的队列,然后向队列中入列100个数。这样中间应该会调用队列扩容函数。再逐个访问队列数据,打印输出结果,程序运行正确。最后还有队列的释放踝怆赜泖操作,需要释放队列申请的指针。