1.题目的初步分析
我们分析上述题目的时候会发现题目非常的长,不好整理思路,我这里可以大致的将本题的几个核心点说出来:
1.队列的思路
循环队列说来说去不还是队列嘛,那么队列的基本操作增删查改、以及队列的基本结构肯定都是不能变的,我们知道队列的逻辑结构就是先进先出,而在C语言中,我们要实现队列可以采用两种方法,一种是链表,一种是顺序表,本题我们采用顺序表。
2.循环的实现
本题我们既然采用顺序表的结构来实现这个循环队列,那么我们就必须想一种方法来让它实现逻辑上的循环,这里可以提供一个思路,多开辟一块空间,队头指针指向队列首元素,队尾指针指向队尾元素的下一个空间;
比如上诉图,假设题目要求k为3,那么我们就开四块空间,为什么我们一定要多开一个空间呢?这是为了我们应对队列里只有0个元素或满元素的时候,倘若我们rear指向的是最后一个元素,那么我们0个元素和满元素就没有办法判断了,因为这两种情况front都等于n。
2.具体实现
2.1结构体里的结构<