校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 队列
题目

对于循环队列()

A.无法判断队列是否为空

B.无法判断队列是否为满

C.队列不可能满

D.以上说法都不是

解答

正确答案是 D

队列头尾相接的顺序存储结构称为循环队列。
只凭等式front=rear是无法判断队空还是队满,所以我们约定当队列头指针front在队尾指针rear的下一个位置上时,作为队列"已满"的标志,当队列满时,数组中还会有一个空闲位置。
我们也可以设置一个标志变量flag,当(front == rear && flag == 0) 队列为空, 当(front == rear && flag == 1)队列为满。

所以循环队列可以判断是否为空、是否为满。

C 4条回复 评论
ZZZ29

通过一定算法是可以区分队空队满的

发表于 2021-02-23 11:19:27
0 0
五分i

正确答案是D

发表于 2021-02-23 11:05:23
0 0
改造家

循环队列最终会空出一个,那样也算是满吗?

发表于 2018-10-13 14:42:47
0 0
雨声敲敲

为了方便起见,约定:初始化建空队时,令
      front=rear=0,
  当队空时:front=rear
  当队满时:front=rear 亦成立
  因此只凭等式front=rear无法判断队空还是队满。  有两种方法处理上述问题:
    (1)另设一个标志位以区别队列是空还是满。
    (2)少用一个元素空间,约定以“队列头指针front在队尾指针rear的下一个位置上”作为队列“满”状态的标志。即:
  队空时: front=rear
  队满时: (rear+1)%maxsize=front

  front指向队首元素,rear指向队尾元素的下一个元素。

发表于 2018-10-13 14:42:41
0 0