读题:队列非空时,front指向队头元素,rear指向队尾元素
思考:
平常的,一般rear指向队尾元素的下一个
那么存储元素就是先将元素存入rear指向的内存,
然后移动rear下一位
但是,题目rear指向队尾元素
那么存储元素就是先移动rear至下一位
然后将元素存储至rear所指的空间
思考:
什么情况下会修改front,rear值
当插入操作会修改rear值,rear值会+1
当删除操作会修改front值,front值会+1
获取front的初始值:
第一个进入队列的元素存储在A[0]
此时队列非空时,front指向队头元素,rear指向队尾元素
那么front = 0,rear = 0 【注意这是插入第一个元素后的front,和rear值】
【题目要求的是初始时的front值和rear值】
第一个进入队列的元素存储在A[0]
该操作属于插入操作,影响rear值,不影响front值
得出初始时front值为0
初始rear值如何得出
题目rear指向队尾元素
那么存储元素就是先移动rear至下一位
然后将元素存储至rear所指的空间
也就是说rear是先移动至下一位,才为0
那么没有进行插入A[0]时的值该是0的上一位
该队列时循环队列
那么0的上一位就是n-1