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 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝