参考答案和解析
正确答案:
答:上溢
更多“当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为_ ”相关问题
  • 第1题:

    对于循环队列,下列叙述中正确的是

    A) 队头指针是固定不变的

    B) 队头指针一定大于队尾指针

    C) 队头指针一定小于队尾指针

    D) 队头指针可以大于队尾指针,也可以小于队尾指针


    正确答案:D

  • 第2题:

    下列叙述中正确的是( )。

    A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

    B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

    C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

    D.循环队列中元素的个数是由队头指针和队尾指针共同决定的


    正确答案:D
    D【解析】循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。

  • 第3题:

    下面叙述中正确的是

    A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

    B.在循环队列中,只需要队头指针就能反应队列中元素的动态变化情况

    C.在循环队列中,只需要队尾指针就能反应队列中元素的动态变化情况

    D.循环队列中元素的个数是由队头和队尾指针共同决定


    正确答案:D
    解析:循环队列是线性表的一种,所以选项A错误。循环队列的入队和出队需要队尾指针和队头指针完成,所以选项B和选项C错误。

  • 第4题:

    下列叙述中正确的是( )。

    A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

    B.在循环队列中,只需要队头指针就能反映队的中元素的动态变化情况

    C.在循环队列中,只需要队尾指针就能反映队的中元素的动态变化情况

    D.循环队列中元素的个数是由队头指针和队尾指针共同决定的


    正确答案:D
    循环队列中元素的个数是由队首指针和队尾指针共同决定的,元素的动态变化也是通过队首指针和队尾指针来反映的,当队首等于队尾时,队列为空。

  • 第5题:

    下列叙述正确的是( )。

    A.非空循环队列的队尾指针等于排头指针时,也可以进行入队运算

    B.循环队列为空时可以进行退队运算

    C.退队运算后队列长度减1

    D.入队运算就是将新元素插入到队尾指针指向的位置


    正确答案:C
    解析:非空循环队列的队尾指针等于排头指针时,说明循环队列已满,不能进行入队运算,A是错误的。循环队列为空时不可以进行退队运算,否则产生“下溢”,B是错误的。入队运算首先将队尾指针加1,然后将新元素插入到队尾指针指向的位置,D是错误的。

  • 第6题:

    当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为

    A.下溢

    B.上溢

    C.异常

    D.溢出


    正确答案:B

  • 第7题:

    循环队列的队首指针为front,队尾指针为rear,则队空的条件为()。


    正确答案:front=rear

  • 第8题:

    循环队列队头指针在队尾指针()位置,队列是“满”状态。


    正确答案:下一个

  • 第9题:

    循环队列的最大存储空间为MaxSize,队头指针为f,队尾指针为r,当()时表明队列已满。


    正确答案:(r+1)%MaxSize=f

  • 第10题:

    填空题
    循环队列的最大存储空间为MaxSize=8,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,则当队尾指针rear=()时,队列为空,当rear=()时,队列有6个元素。

    正确答案: 4,2
    解析: 暂无解析

  • 第11题:

    填空题
    循环队列的队头指针为f,队尾指针为r,当()时表明队列为空。

    正确答案: r==f
    解析: 暂无解析

  • 第12题:

    填空题
    循环队列队头指针在队尾指针()位置,队列是“满”状态。

    正确答案: 下一个
    解析: 暂无解析

  • 第13题:

    假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素站点(注意不设头指针) ,试编写相应的置空队、判队空 、入队和出队等算法。


    参考答案:
      置空队就是建立一个头节点,并把头尾指针都指向头节点,头节点是不存放数据的;判队空就是当头指针等于尾指针时,队空;入队时,将新的节点插入到链队列的尾部,同时将尾指针指向这个节点;出队时,删除的是队头节点,要注意队列的长度大于1还是等于1的情况,这个时候要注意尾指针的修改,如果等于1,则要删除尾指针指向的节点。
      [算法描述]
      //先定义链队结构:
      typedef struct queuenode
      {Datatype data;
      struct queuenode *next;
      }QueueNode; //以上是结点类型的定义
      typedef struct
      {queuenode *rear;
      }LinkQueue; //只设一个指向队尾元素的指针
      (1) 置空队
      void InitQueue( LinkQueue *Q)
      { //置空队:就是使头结点成为队尾元素
      QueueNode *s;
      Q->rear = Q->rear->next;//将队尾指针指向头结点
      while (Q->rear!=Q->rear->next)//当队列非空,将队中元素逐个出队
      {s=Q->rear->next;
      Q->rear->next=s->next;
      delete s;
      }//回收结点空间
      }
      (2) 判队空
      int EmptyQueue( LinkQueue *Q)
      { //判队空。当头结点的next指针指向自己时为空队
      return Q->rear->next->next==Q->rear->next;
      }
      (3) 入队
      void EnQueue( LinkQueue *Q, Datatype x)
      { //入队。也就是在尾结点处插入元素
      QueueNode *p=new QueueNode;//申请新结点
      p->data=x; p->next=Q->rear->next;//初始化新结点并链入
      Q-rear->next=p;
      Q->rear=p;//将尾指针移至新结点
      }
      (4) 出队
      Datatype DeQueue( LinkQueue *Q)
      {//出队,把头结点之后的元素摘下
      Datatype t;
      QueueNode *p;
      if(EmptyQueue( Q ))
      Error("Queue underflow");
      p=Q->rear->next->next; //p指向将要摘下的结点
      x=p->data; //保存结点中数据
      if (p==Q->rear)
      {//当队列中只有一个结点时,p结点出队后,要将队尾指针指向头结点
      Q->rear = Q->rear->next;
      Q->rear->next=p->next;
      }
      else
      Q->rear->next->next=p->next;//摘下结点p
      delete p;//释放被删结点
      return x;
      }

  • 第14题:

    对于循环队列,下列叙述中正确的是( )。

    A.循环队列中元素的个数是由队头指针和队尾指针共同决定

    B.在循环队列中,需要队头指针就能反映队列中元素的动态变化情况

    C.在循环队列中,队头指针一定大于队尾指针

    D.在循环队列中,队头指针一定小于队尾指针


    正确答案:A
    循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针。

  • 第15题:

    下列叙述中正确的是______。

    A.循环队列中有队头和卧尾两个指针,因此,循环队列是非线牲结构

    B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

    C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

    D.循环队列中元素的个数是由队头指针和队尾指针共同决定


    正确答案:D
    解析:所谓循环队列,就是将队列存储空间的最后一个位置绕到第1个位置,形成逻辑上的环状空间,供队列循环使用。所以循环队列还是属于线性结构,所以选项A是错误的。循环队列的头指针front指向队列的第一个元素的前一位置,队尾指针rear指向队列的最后一个元素,循环队列的动态变化需要头尾指针共同反映,所以选项B、C是错误的。循环队列的长度是:(sq.rear-sq.front+maxsize)%maxsize,所以循环队列的长度是由队头和队尾指针共同决定的,所以选项D正确。

  • 第16题:

    下列叙述中正确的是( )。【考点4队列】

    A.循环队列有队头和队尾两个指针,因此循环队列是非线性结构

    B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

    C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

    D.循环队列中元素的个数是由队头指针和队尾指针共同决定的


    正确答案:D
    循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。

  • 第17题:

    对于循环队列,下列叙述中正确的是( )。

    A.循环队列中元素的个数是由队头指针和队尾指针共同决定的

    B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

    C.在循环队列中,队头指针一定大于队尾指针

    D.在循环队列中,队头指针一定小于队尾指针


    正确答案:A
    循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针。

  • 第18题:

    某循环队列的容量MAXSIZE=6,队头指针front=3,队尾指针rear=0,则该队列有()个元素。


    正确答案:3

  • 第19题:

    循环队列的队头指针为f,队尾指针为r,当()时表明队列为空。


    正确答案:r==f

  • 第20题:

    循环队列的最大存储空间为MaxSize=8,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,则当队尾指针rear=()时,队列为空,当rear=()时,队列有6个元素。


    正确答案:4;2

  • 第21题:

    在顺序队列中,应该有队头和队尾两个指针来指示,队头指针和队尾指针的初值在队列的初始化时均应该设置为(),当对队列进行插入和删除的操作后,如果头指针和尾指针相等时,队列为()。


    正确答案:0;空

  • 第22题:

    填空题
    循环队列的最大存储空间为MaxSize,队头指针为f,队尾指针为r,当()时表明队列已满。

    正确答案: (r+1)%MaxSize=f
    解析: 暂无解析

  • 第23题:

    单选题
    下列叙述中正确的是(  )。
    A

    循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

    B

    在循环队列中,只需要队头指针就能反映队列中元素的动态变化

    C

    在循环队列中,只需要队尾指针就能反映队列中元素的动态变化

    D

    循环队列中元素的个数由队头指针和队尾指针共同决定


    正确答案: A
    解析:
    循环队列是顺序存储的线性结构,是队列常采用的形式,故A项错误。循环队列中的元素是动态变化的:每一次入队,队尾指针就进一;每一次出队,队头指针就进一,所以队头指针和队尾指针一起反映了队列中元素的动态变化情况,BC两项错误。从队头指针指向的后一个位置与队尾指针指向的位置之间的元素即为队列中所有的元素,答案选择D选项。