首页 > 试题广场 >

最大容量为n的循环队列,队尾指针是rear,队头是front

[单选题]

最大容量为n的循环队列,队尾指针是rear,队头是front,则队满的条件是()。

  • (rear+1) MOD n==front
  • rear==front
  • rear+1==front
  • (rear-1) MOD n==front
意思就是,题目出错了呗
发表于 2018-09-05 11:07:32 回复(0)
循环队列为空:front == rear;
循环队列为满:(rear + 1) % n == front
发表于 2018-08-18 11:29:19 回复(0)
为了方便起见,约定:初始化建空队时,令
      front=rear=0,
  当队空时:front=rear
  当队满时:front=rear 亦成立
  因此只凭等式front=rear无法判断队空还是队满。  有两种方法处理上述问题:
    (1)另设一个标志位以区别队列是空还是满。
    (2)少用一个元素空间,约定以“队列头指针front在队尾指针rear的下一个位置上”作为队列“满”状态的标志。即:
  队空时: front=rear
  队满时: (rear+1)%maxsize=front
————————————————
原文链接:https://blog.csdn.net/huangkq1989/article/details/5719529
发表于 2021-07-06 16:26:00 回复(0)
解决这个问题的方法至少有两种:
① 另设一布尔变量以区别队列的空和满;
②另一种方式就是数据结构常用的: 队满时:(rear+1)%n==front,n为队列长度(所用数组大小),由于rear,front均为所用空间的指针,循环只是逻辑上的循环,所以需要求余运算。如图情况,队已满,但是rear(5)+1=6!=front(0),对空间长度求余,作用就在此6%6=0=front(0)。
编辑于 2018-09-03 20:43:47 回复(0)
这题明显不对啊,rear应该是最后一个元素的下一个的指针,这时候rear=front才对,按他说的,有一个元素rear也等于front啊
发表于 2018-04-14 21:34:48 回复(3)
在循环队列中,当队列为空时,有front=rear,而当所有队列空间全占满时,也有front=rear。为了区别这两种情况,规定循环队列最多只能有MaxSize-1个队列元素,当循环队列中只剩下一个空存储单元时,队列就已经满了。因此,队列判空的条件是front=rear,而队列判满的条件是front=(rear+1)%MaxSize。
发表于 2021-09-14 09:16:48 回复(0)
答案错了 选择A
发表于 2018-09-12 10:41:23 回复(1)
A  满的话 front和rear是相等的  除以总长度 余数应该相等。
发表于 2018-07-16 12:30:39 回复(1)
当rear指针的下一个位置就是front的位置的时候,循环队列已满。
发表于 2022-11-02 18:54:11 回复(0)
循环队列,队尾指针永远指向将要入队的位置,对头指针永远指向将要出队的位置。 队列有元素的状态下,队头指针指向“队头元素”,队尾指针指向预留给将要入队元素的“空位”。 如果预留给将要入队元素的“空位”和将要出队的“队头元素”同时指向同一个位置,这种情况逻辑上是矛盾的,但是比较特殊,可以作为队空的条件。 当队尾指针赶上队头指针时,也就是“空位”位置和“队头元素”位置相邻,此时队满,这就意味着会队列会浪费一个位置,也就是说用长度为n的数组实现的队列当队满时可以容纳n-1个元素。
发表于 2022-04-07 14:37:54 回复(0)
循环队列为空:front == rear;
循环队列为满:(rear + 1) % n == front

此题的队列算法是这样的

插入结点:
    if  队列为空( front == rear):
        插入;rear++;
    if  队列为满 :
        不插入;
    else:
        rear++;插入

这样子就能插入n个元素了

发表于 2022-03-07 11:20:30 回复(0)
循环队列为空:front == rear;
循环队列为满:(rear + 1) % n == front
发表于 2020-06-27 09:51:18 回复(0)
A
发表于 2020-05-15 13:22:37 回复(0)
看出队满去了。。。
发表于 2018-02-18 22:17:23 回复(0)
没说是循环队列
发表于 2017-08-16 19:35:25 回复(1)
为空,不是为满
发表于 2017-07-29 18:58:43 回复(0)