更多“循环队列用a[0],...,a[7]的一维数组存放队列元素,(采用少用一个元素的模式),设front和rear分别为队头和队尾指针,且front和rear 的值分别为2和7,当前队列中的元素个数是()。”相关问题
  • 第1题:

    某循环队列的容量为M,队头指针指向队头元素,队尾指针指向队尾元素之后,如下图所示(M=8),则队列中的元素数目为(41)(MOD表示整除取余运算)。

    A.rear-front

    B.front-rear

    C.(rear-front+M)MODM

    D.(front-rear+M)MOD M


    正确答案:C
    解析:本题考查数据结构中队列的础知识。队列是仅在表头删除元素、在表尾插入元素的操作受限的线性表,其特点是先入先出。应用中可以将队列看作容器。队列采用顺序存储结构(一维数组,顺序队列)时,为了降低运算的复杂度,元素入队时,只需修改队尾指针rear,(rear+1→rear);元素出队时,只需修改队头指针front(front+1→front)。由于顺序队列的存储空间是提前设定的,所以队尾指针会有一个上限值,当队尾指针达到其上限时,就不能只通过修改队尾指针来实现新元素的入队操作了。此时,可将顺序队列假想成一个环状结构,称为循环队列。队列容量为M时,队头指针front和队尾指针rear的值循环地在0~M-1之间变化,当rear>front时,队列中元素数目为rear-front;当rearfront时,队列中元素数目为rear-front +M。综上,队列中元素数目为(rear-front+M)MOD M。

  • 第2题:

    设某循环队列的容量为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。

  • 第3题:

    在循环队列中用数组A[0.m-1]存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。

    A.(front-rear+1)%m
    B.(rear-front+1)%m
    C.(front-rear+m)%m
    D.(rear-front+m)%m

    答案:D
    解析:
    D选项即为计算当前队列元素个数的公式。

  • 第4题:

    若非空队列采用链式存储结构,队头指针与队尾指针分别为front和rear,则删除队列的一个元素的过程是依次执行:p=front;,(),free(p);。

    • A、rear=p;
    • B、rear=p->link;
    • C、front=p->link;
    • D、front=rear->link;

    正确答案:C

  • 第5题:

    循环队列sq中,用数组elem[0‥25]存放数据元素,sq.front指示队头元素的前一个位置,sq.rear指示队尾元素的当前位置,设当前sq.front为20,sq.rear为12,则当前队列中的元素个数为()。

    • A、8
    • B、16
    • C、17
    • D、18

    正确答案:D

  • 第6题:

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


    正确答案:3

  • 第7题:

    若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当入队一个元素,再出队两个元素后,rear和front的值分别为:()

    • A、 1和5
    • B、 2和4
    • C、 4和2
    • D、 5和1

    正确答案:A

  • 第8题:

    一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为:()。


    正确答案:(rear-front+M)%M

  • 第9题:

    用数组A[0 … m-1]来存放循环队列的元素,且它的头尾指针分别为front 和rear, 队列满足条件(sq.rear + 1) % m == sq.front,队列中当前元素的个数为()


    正确答案:m-1

  • 第10题:

    填空题
    循环队列用a[0],...,a[7]的一维数组存放队列元素,(采用少用一个元素的模式),设front和rear分别为队头和队尾指针,且front和rear 的值分别为2和7,当前队列中的元素个数是()。

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

  • 第11题:

    填空题
    用数组A[0 … m-1]来存放循环队列的元素,且它的头尾指针分别为front 和rear, 队列满足条件(sq.rear + 1) % m == sq.front,队列中当前元素的个数为()

    正确答案: m-1
    解析: 暂无解析

  • 第12题:

    填空题
    一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为:()。

    正确答案: (rear-front+M)%M
    解析: 暂无解析

  • 第13题:

    用数组A[0…m-1]存放循环队列的元素值,若其头尾指针分别为front和rear,则循环队列中当前元素的个数为______。

    A.(rear-front+m)mod m

    B.(rear-front+1)mod m

    C.(rear-front-1+m)mod m

    D.(rear-front)mod m


    正确答案:A

  • 第14题:

    假设以数组A[n]存放循环队列的元素,其头指针front指向队头元素的前一个位置、尾指针rear指向队尾元素所在的存储位置,则在少用一个元素空间的前提下,队列满的判定条件为 ( )

    A.rear==front

    B.(front+1)%n==rear

    C.rear+1==front

    D.(rear+1)%n==front


    正确答案:D
    解析:在循环队列中,在少用一个元素空间的前提下,可约定入队前,测试尾指针在循环意义下加1后是否等于头指针,若相等则认为队满。

  • 第15题:

    循环队列用数组A[o…m-1]存放其元素值,已知其头尾指针分别为front和rear,则当前元素个数为()。

    A.(rear-front+m)modm
    B.rear-front+l
    C.rear-front-1
    D.rear-front

    答案:A
    解析:
    循环队列中rear和front分别指向队尾和队头,当rear>front时,元素的个数为rear-front,根据循环队列的性质,当插入点已经插入到数组A的最后位置且有新的元素插入时,会继续从数组的开始位置执行插入操作,此时rear<front,数组元素的个数为rear-front+m。综合两种情况,循环队列中当前元素的个数计算方法为:(rear-front+m)modm。

  • 第16题:

    若队列采用链式存储结构,队头指针与指针分别为front和rear,向队列中插入一个数据信息为item的新元素的过程是依次执行:call GETNODE(p),data(P)←item,rear←p,front←p。


    正确答案:错误

  • 第17题:

    在循环队列中用数组A[0..m-1]存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()

    • A、(front-rear+1)%m
    • B、(rear-front+1)%m
    • C、(front-rear+m)%m
    • D、(rear-front+m)%m

    正确答案:D

  • 第18题:

    设循环队列的元素存放在一维数组Q[0‥30]中,队列非空时,front指示队头元素的前一个位置,rear指示队尾元素。如果队列中元素的个数为11,front的值为25,则rear应指向()元素。

    • A、Q[4]
    • B、Q[5]
    • C、Q[14]
    • D、Q[15]

    正确答案:B

  • 第19题:

    循环队列用数组A[0…m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()

    • A、(rear-front+m)%m
    • B、read-front+1
    • C、read-front-1
    • D、read-front

    正确答案:A

  • 第20题:

    设循环队列的头指针front指向队首元素,尾指针rear指向队尾元素后的一个空闲元素,队列的最大空间为MAXLEN,则队满标志为()


    正确答案:front=(rear+1)%MAXLEN

  • 第21题:

    循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是()。

    • A、front==rear
    • B、front==0
    • C、rear==0
    • D、front=rear+1

    正确答案:A

  • 第22题:

    单选题
    循环队列A[0.m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。
    A

    (rear-front+m)%m

    B

    rear-front+1

    C

    rear-front-1

    D

    rear-front


    正确答案: B
    解析:

  • 第23题:

    单选题
    循环队列用数组A[0…m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()
    A

    (rear-front+m)%m

    B

    read-front+1

    C

    read-front-1

    D

    read-front


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