首页 > 试题广场 >

设数组a[]作为循环队列SQ的存储空间,f为队头指示,r为队

[单选题]
设数组a[]作为循环队列SQ的存储空间,数组的长度为m,f为队头指示,r为队尾指示,则执行出队操作的语句为()
  • f=f+1
  • f=(f+1)%m
  • r=(r+1)%m
  • f=(f+1)%(m+1)

循环队列的相关条件和公式: 
队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度 
1.队空条件:rear==front 
2.队满条件:(rear+1) %QueueSIze==front 
3.计算队列长度:(rear-front+QueueSize)%QueueSize 
4.入队:(rear+1)%QueueSize 
5.出队:(front+1)%QueueSize

发表于 2016-08-25 08:39:33 回复(13)

循环队列的相关条件和公式: 
注意:公式中的real是指向最后队尾元素的下一个元素的地址,并且一个长度为m的循环队列,规定最多只可存m-1个元素(队满),会有一个空的空间

队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度 
1.队空条件:rear==front 
2.队满条件:(rear+1) %QueueSIze==front 
3.计算队列长度:(rear-front+QueueSize)%QueueSize 
4.入队:(rear+1)%QueueSize 
5.出队:(front+1)%QueueSize
发表于 2017-09-12 10:14:23 回复(2)
用数组a[m]作为循环队列的存储空间,初始状态下,队头指针f = 0(数组索引),
要实现出队操作就要让队头指针后移一位,即f=f+1;
对循环队列而言,当前m-1个元素均出队(只剩最后一个元素时)后,队头指针f=m-1,
如果继续执行出队操作本应该是f=m,但为保证最后一个元素出队后队头指针f=0,
即f指向a[0],需要对m取模,即f=(f + 1)%m

编辑于 2016-06-19 15:16:59 回复(0)
队列的数据是尾进头出的。
发表于 2015-09-27 16:28:25 回复(1)
出队时队头指针向后移一位,因为是循环队列,所以要考虑队头在尾端的情况,故对m取余。
发表于 2016-04-22 23:20:52 回复(0)
答案是B,队头指针向后移一位
发表于 2015-05-20 19:15:32 回复(2)
循环队列的相关条件和公式:  队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度  1.队空条件:rear==front  2.队满条件:(rear+1) %QueueSIze==front  3.计算队列长度:(rear-front+QueueSize)%QueueSize  4.入队:(rear+1)%QueueSize  5.出队:(front+1)%QueueSize
发表于 2022-05-31 20:46:35 回复(0)
循环队列的相关条件和公式: 
队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度 
1.队空条件:rear==front 
2.队满条件:(rear+1) %QueueSIze==front 
3.计算队列长度:(rear-front+QueueSize)%QueueSize 
4.入队:(rear+1)%QueueSize 
5.出队:(front+1)%QueueSize
发表于 2019-03-02 13:37:16 回复(0)
答案竟然是d,这个队列是0~m共m+1个元素?好奇怪的数组
发表于 2015-03-28 15:37:03 回复(1)
用数组a[m]作为循环队列的存储空间,初始状态下,队头指针f = 0(数组索引), 要实现出队操作就要让队头指针后移一位,即f=f+1; 对循环队列而言,当前m-1个元素均出队(只剩最后一个元素时)后,队头指针f=m-1, 如果继续执行出队操作本应该是f=m,但为保证最后一个元素出队后队头指针f=0, 即f指向a[0],需要对m取模,即f=(f + 1)%m
发表于 2022-03-09 16:06:11 回复(0)
队列:队尾插入,队首删除
发表于 2017-02-19 13:41:13 回复(0)
正确答案是B。。。
发表于 2016-03-04 00:03:26 回复(0)
题目表达不清楚,如果是数组a[m]那么就选B,如果是数组a[0..m]那么答案为D
发表于 2015-07-01 11:35:59 回复(1)
入队:(rear+1)%QueueSize 出队:(front+1)%QueueSize
发表于 2021-10-28 11:21:35 回复(0)
假设向量的空间是m
入队时:rear = (rear+1)%m;
出队时: front = (front+1) %m
当队空or队满时,都会出现rear=front 的情况。
发表于 2017-02-13 18:17:10 回复(1)
不明觉厉。。。为什么是D。。。
发表于 2015-03-30 21:19:23 回复(0)


循环队列的相关条件和公式: 
队尾指针是rear,队头是front,其中Q为循环队列的最大长度 
1.队空条件:rear==front
2.队满条件:(rear-1+Q)%Q==front
3.计算队列长度:length=(rear-front+Q)%Q
4.入队:rear=(rear+1)%Q
5.出队:front=(front+1)%Q

发表于 2023-02-23 17:46:25 回复(0)
循环队列:font指向排头的前一个位置,rear指向队尾位置;到达队尾后绕道第一个位置。
退队:
从font出队,当font还没走到队尾时,font=font+1;到达队尾时font=1;综合两个结果,front=(front+1)/m;

发表于 2016-08-16 15:00:03 回复(0)
所以应该是a[m]?
发表于 2015-04-01 09:21:47 回复(0)
循环队列的相关条件和公式: 队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度 1.队空条件:rear==front 2.队满条件:(rear+1) %QueueSIze==front 3.计算队列长度:(rear-front+QueueSize)%QueueSize 4.入队:(rear+1)%QueueSize 5.出队:(front+1)%QueueSize
发表于 2023-12-18 13:29:33 回复(0)