设循环队列为Q(1:m),其初始状态为front=rear =m.经过一系列入队与退队运算后,front=20,rear=15.

2022-07-28 文化 250阅读

第一步:看题目中有没有头指针(front)指向队首元素这句话,如果没有,那么就不用+1

(这个这个很重要)

第二步:出初始状态是front=rear=m,注意front是头,rear是尾

第三步:判断front和rear的大小,这里front=20,rear=15所以front在上rear在下,为了方便理解,下面上图

第四步(关键步骤):上面已经判断了front在上,rear在下,所以循环队列中的元素是绿色的部分,灰色的部分是20-15=5,绿色的部分是m-5个元素,题目说的是找寻最小值的元素,最坏情况下需要比较的次数为,就是m-5-1=m-6次(次数等于元素个数-1,如果有5个数,那么比较4次就可以得到最小值)

第五步:第四步其实已经结束了,这里讲一下front=15,rear=20的情况,这种情况就是front在下,rear在上,循环队列中元素的个数为灰色的部分,为20-15=5个元素,这里关键就是front和rear的大小,并理解front和rear的移动

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com