itgle.com
更多“3.用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。”相关问题
  • 第1题:

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

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

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

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

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


    正确答案:D

  • 第2题:

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

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

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

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

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


    正确答案:D

  • 第3题:

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

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

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

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

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


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

  • 第4题:

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

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

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

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

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


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

  • 第5题:

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

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

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

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

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


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

  • 第6题:

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

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

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

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

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


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

  • 第7题:

    以下各种存储结构中,最适合用作链队的链表是()。

    A.带队首指针和队尾指针的循环单链表
    B.带队首指针和队尾指针的非循环单链表
    C.只带队首指针的非循环单链表
    D.只带队首指针的循环单链表

    答案:B
    解析:
    因为队列的入队和出队操作都在端点进行。即在队首和队尾进行。所以带队首指针和队尾指针的非循环单链表最适合用作链队的链表。

  • 第8题:

    设长度为n的链队用单循环链表表示,若设头指针,则入队出队操作的时间为何?若只设尾指针呢?


    正确答案:当只设头指针时,出队的时间为1,而入队的时间需要n,因为每次入队均需从头指针开始查找,找到最后一个元素时方可进行入队操作。若只设尾指针,则出入队时间均为1。因为是循环链表,尾指针所指的下一个元素就是头指针所指元素,所以出队时不需要遍历整个队列。

  • 第9题:

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


    正确答案:0;空

  • 第10题:

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

    带链队列的存储空间可以不连续,但队头指针必须大于队尾指针

    B

    带链队列的存储空间可以不连续,但队头指针必须小于队尾指针

    C

    带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针

    D

    带链队列的存储空间一定是不连续的


    正确答案: C
    解析:
    带链的队列就是用一个单链表来表示队列,它既可以采用空间连续的顺序存储也可以采用空间不连续的链接存储。在循环链队中,队头指针可以大于也可以小于队尾指针。答案选择C选项。

  • 第11题:

    问答题
    设长度为n的链队用单循环链表表示,若设头指针,则入队出队操作的时间为何?若只设尾指针呢?

    正确答案: 当只设头指针时,出队的时间为1,而入队的时间需要n,因为每次入队均需从头指针开始查找,找到最后一个元素时方可进行入队操作。若只设尾指针,则出入队时间均为1。因为是循环链表,尾指针所指的下一个元素就是头指针所指元素,所以出队时不需要遍历整个队列。
    解析: 暂无解析

  • 第12题:

    用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时()。

    A.仅修改队头指针

    B.仅修改队尾指针

    C.队头、队尾指针都可能要修改

    D.队头、队尾指针都要修改


    正确答案:C

  • 第13题:

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

    A.带链队列的存储空间可以不连续,但队头指针必须大于队尾指针

    B.带链队列的存储空间可以不连续,但队头指针必须小于队尾指针

    C.带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针

    D.以上说法都不对


    正确答案:C

  • 第14题:

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


    参考答案:
      置空队就是建立一个头节点,并把头尾指针都指向头节点,头节点是不存放数据的;判队空就是当头指针等于尾指针时,队空;入队时,将新的节点插入到链队列的尾部,同时将尾指针指向这个节点;出队时,删除的是队头节点,要注意队列的长度大于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;
      }

  • 第15题:

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

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

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

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

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


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

  • 第16题:

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

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

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

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

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


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

  • 第17题:

    设某循环队列的容量为50,头指针front=5(指向队头元素的前-位置),尾指针rear=29(指向队尾元素),则该循环队列中共有—________个元素。


    正确答案:
    24【分析】本题主要考查考生对循环队列的存储形式和入队运算、出队运算的理解。循环队列的初始状态为满或空(front=50,rear=50),出队:front=front+1(若front=50,则将1赋值给front),入队:rear=rear+1(若rear=51,则将1赋值给rear)。
    我们现在来模拟从循环队列的初始状态,经过多少次入队WWW出队操作来达到最终状态front=5,rear=29。
    假设循环队列的初始状态为满(front=50,rear=50),只能先出队,然后再入队。将一个元素出队,front=50+l=51,根据循环队列的规定应该将l赋值给front,即front=1,再将一个元素出队,front=1+1=2,直到出队5个元素,front=5。5个元素出队了,空出了5个空间,所以元素可以入队,将一个元素入队,rear=50+1=51,根据循环队列的规定应
    该将l赋值给rear,即rear=1,再将一个元素入队,rear=1+1=2,直到入队29个元素,rear=29。由于出队只空出5个空间,所以无法入队29个元素。因此循环队列的初始状态为满不成立。
    假设循环队列的初始状态为空(front=50,rear=50),只能先入队,然后再出队。rear=29,表示有29个元素入队了,也即队列中只有29个元素。现在front=5,表示要有5个元素出队,队列中只剩下29—5=24个元素。因此循环队列的初始状态只能为空。队列中有24个元素。
    同理,若循环队列的最终状态为front=29,rear=5,我们可以肯定循环队列的初始状态为满,则队中有50—29+5=26个元素。
    若循环队列的最终状态为front=29,rear=29,我们可以肯定循环队列为满或空,所以循环队列中有50或O个元素。
    总结,规律如下:若front>rear,队列中有n-front+rear个元素(其中n为循环队列的容量);若front<rear,队列中有rear-front个元素;若front=rear,队列中有n个或0个元素。因此本题的正确答案是24。

  • 第18题:

    用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时()。

    • A、仅修改队头指针
    • B、仅修改队尾指针
    • C、队头、队尾指针都可能要修改
    • D、队头、队尾指针都要修改

    正确答案:C

  • 第19题:

    用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。


    正确答案:正确

  • 第20题:

    单选题
    用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( )。
    A

    仅修改队头指针

    B

    仅修改队尾指针

    C

    队头、队尾指针都要修改

    D

    队头、队尾指针都可能要修改


    正确答案: C
    解析:

  • 第21题:

    判断题
    在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。()
    A

    B


    正确答案:
    解析:

  • 第22题:

    判断题
    用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。
    A

    B


    正确答案:
    解析: 暂无解析