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

题目:
己知循环队列存储在一维数组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个回答

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

tk0320
ijpq 只是想知道对错
接近 4 年之前 回复

题目好奇怪,初始化时front和rear的值不应该都为0吗

tk0320
ijpq 可以改的吧
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐