ijpq 2016-08-29 08:44 采纳率: 100%
浏览 2090
已采纳

一道经典的计算机联考循环队列选择题

题目:
己知循环队列存储在一维数组A[O…n-1]中,且队列非空时front和rear分别指向队头元素和队尾元索。若初始时队列为空,且要求第1个进入队列的元素存储在A[0]处,则初始时front和rear的值分别为:0,n-1

我的疑问是:如果按照这样操作,在入队第一个数据后,rear=front=0,那么此时的判断队列为空的条件就不应该照搬按照一般教科书上写的if(rear==front)来判定了吧?如果按照题目要求操作,队空判定条件应该改为什么呢?我觉得(rear+1)%maxsize=front无法区分队空和队满了,是不是应该引入tag标识符了?

  • 写回答

3条回答 默认 最新

  • 山的那一面 2016-08-30 13:31
    关注

    顺序队 数组的元素最少为1,因为要空出来一个,即定义的buf[max] max的初值最少为1 空的情况下也是front=0,rear=max-1=0,两个数的值相等,插入后会更新max的值,如:插入一个后max值为2,所以队满队空的条件还是成立的,也就是说rear对应的元素是个空值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题