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

题目

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

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

相似考题
更多“设循环队列的元素存放在一维数组Q[0‥30]中,队列非空时,fr”相关问题
  • 第1题:

    循环队列中,设队列元素依次存放在Q[0..m]中,f、r分别指示队头元素位置和队尾元素的下一个位置,约定存储m个元素时为队满。则队列空的判定方法是(),队列满的判定方法是()。

    A.f==r

    B.(f+1)%(m+1)==r

    C.(r+1)%(m+1)==f

    D.(r+1)% m==f


    参考答案:A,C

  • 第2题:

    设循环队列的存储空间为Q(1:30),初始状态为front=rear=30。现经过一系列入队与退队运算后,front=16, rear=15,则循环队列中有【 2 】个元素。


    正确答案:
    【答案】:29
    【知识点】:循环队列元素个数的计算方法
    【解析】:循环队列中元素个数的计算方法是:当尾指针大于头指针时,循环队列中元素个数为尾指针-头指针,当尾指针小于头指针时,循环队列中元素个数为(rear-front+容量)%容量,此题中循环队列共有30个容量,另外队尾指针rear的值小于队头指针front的值,所以利用公式(rear-front+30)%30计算得到循环队列的元素个数为29。

  • 第3题:

    设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m-1,rear=m,此后再向该循环队列中插入一个元素,则队列中的元素个数为()。

    A.2

    B.1

    C.m-1

    D.m


    正确答案:A

  • 第4题:

    阅读以下说明和C函数,填补函数代码中的空缺(1)~(5),将解答填入答题纸

    的对应栏内。

    【说明】

    队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表

    尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元

    素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。

    设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和

    lengtb三个域变量,其中’base为队列空间的首地址,rear为队尾元素的指针,length表

    示队列的长度。

    define maxqstze 100

    typedef struct {

    QElemType *base; /*循环队列的存储空间首地址*/

    int rear; /*队尾元素索引*/

    int length; /*队列的长度*/

    ) SqQueue;

    例如,容量为8的循环队列如图3-1所示,初始时创建的空队列如图3一l(a)所示

    经过一系列的入队、出队操作后,队列的状态如图3-1 (b)所示(队列长度为3)。

    下面的C函数1、C函数2和C函数3用于实现队列的创建、插入和删除操作,请

    完善这些代码。

    【C函数1】创建一个空的循环队列。

    int initQueue (SqQueue *Q)

    /*创建容量为MAXQSIZE的空队列,若成功则返回1;否则返回0*/

    { Q->base = (QElemType*) malloc(MAXQSIZE* (1) )

    if (!Q=>base) return 0;。;

    Q->length=O;

    Q-’rear =O:

    Return 1;

    } /*InitQueue*/

    【c函数2】元素插入循环队列。

    int EnQueue(sqQueue *Q. QElemType e)/*元素e入队,若成功则返回1;否则返回0*/

    {if ( Q->length>=MAXQSIZE) return 0.;

    Q->rear=(2);

    Q->base [Q->rear]=e;

    (3) ;

    Return 1

    ) /*EnQUeue*/

    【c函数3】元素出循环队列。

    int DeQueue (SqQueue *Q. QElemType *e)

    /*若队列不空,则删除队头元素,由参数e带回其值并返回1;否则返回O*/

    {1f‘(4),return 0;

    *e =O->base[ (Q=>rear - Q->length+I+MAXQSTZE) %MAXQSIZE]

    (5) ;

    returnl;

    } /*DeQueue*/


    正确答案:
    分析本题考查数据结构实现和C语言基本应用。队列是一种基本的数据结构,其基本操作有初始化、判断是否为空、八队列和出队列等。循环队列是一种采用顺序存储结构实现的队列,其特点是将队列存储空间的首尾单元在逻辑上连接起来,从而得到一个环形结构的队列空间。在循环队列的类型定义SqQueue中,指针成员base存放队列空间的首地址,存储空间应在队列的初始化操作中实现,对应的语句如下:Q->base=(QElemType*)malloc(MAXQSIZE*(1)),由于InitQueue(SqQueue*Q)的形参为指向结构体的指针,因此队列的参数可表示为“Q->base、Q->rear、Q->lengrh”或“(*Q).base、(*Q).rear、(*Q).length”,由于队列元素类型为QElemType、队列容量为MAXQSIZE,因此空(l)处应填入“sizeof(QElemType)”。入队列操作由EnQueue(SqQueue*Q,QElemTypee)实现。由于循环队列空间的容量为MAXQSIZE(也就是队满条件为“Q->length>=MAXQSLZE”),因此元素入队列时,需先判断是否队满,在队列中有空闲单元的情况下才能进行入队列操作。其次需确定新元素在队列空间中的位置,从图3—1(b)中可以看出,Q->rear指出了当前队尾元素,新元素应放入下一个位置,结合队列环形空间的要求,空(2)处应填入“(Q->rear+I)%。MAXQSIZE”或其等价形式。通过“Q->base[Q->rear]=e”将元素加入队列后,队列长度增加了,因此空(3)处应填入“Q->length++”或其等价形式。出队列操作由DeQueue(SqQueue*Q,QElemType*e)实现。元素出队列时,需要判断队列是否为空,显然,队列长度为0就直接表示了队空,因此空(4)处应填入“Q->length=0”或其等价形式,空(5)处应填入“Q->length--”或其等价形式。试题三参考答案(1)sizeoftQElemtype)(2)(Q->rear+1)%MAXQSIZE或等价表示(3)Q->length++或Q->length=Q->length+l或等价表示(4)Q->length=0或Q->length=0或等价表示(5)Q->length-,或Q->length=Q->length-1或等价表示

  • 第5题:

    设循环队列的存储空间为Q(1:30),初始状态front=rear=30,先经过一系列入队和退队运算后,front=10,rear=10,则循环队列中的元素个数为()。

    A.30
    B.0
    C.29
    D.0或30

    答案:D
    解析:
    当frontrear时,循环队列中的元素个数为N-front+rear(N为循环队列容量)。当front=rear时,循环队列中的元素个数可能为空,也可能为满。

  • 第6题:

    循环队列的队头指针指示队头元素在数组中实际位置的()位置, 对头指针指示的结点()队列元素。


    正确答案:前一个;不用于存储

  • 第7题:

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

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

    正确答案:B

  • 第8题:

    15.循环队列采用数组data()来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定队列中能够存放的元素个数最大为n—1,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下表是()。入队时,可用语句()切除新元素在数组data中的下标。


    正确答案:front;rear=rear+1;mod n

  • 第9题:

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


    正确答案:m-1

  • 第10题:

    填空题
    15.循环队列采用数组data()来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定队列中能够存放的元素个数最大为n—1,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下表是()。入队时,可用语句()切除新元素在数组data中的下标。

    正确答案: front,rear=rear+1,mod n
    解析: 暂无解析

  • 第11题:

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

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

  • 第12题:

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

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

  • 第13题:

    设栈S的初始状态为空,队列Q的初始状态如图所示。

    对栈S和队列Q进行下列两步操作: (1)删除Q中的元素,将删除的元素插入S,直至Q为空。 (2)依次将S中的元素插入Q,直至S为空。在上述两步操作后,队列Q的状态是【 】。


    正确答案:a4a3a2a1
    a4a3a2a1 解析:队列的删除是从队头开始的,所以在执行第一步后,S中的内容及顺序应为a1a2a3a4。但栈的出栈顺序是先进后出,所以出栈/顷序为a4a3a2a1。队列的内容及顷序也与出栈情况一致。

  • 第14题:

    设循环队列Q的定义中有front和size两个域变量,其中front表示队头元素的指针,size表示队列的长度,如下图所示(队列长度为3,队头元素为x,队尾元素为z)。设队列的存储空间容量为M,则队尾元素的指针为 (58)。

    A.(Q.front+Q.size-1)

    B.(Q.front+Q.size-1+M)%M

    C.(Q.front-Q.size)

    D.(Q.front-Q.size+M)%M


    正确答案:B
    本题考查循环队列队尾指针的计算方法。从图示可以看出,要得到z的值可进行Q.front+Q.size-1操作,但在此不容忽视的一个问题是,循环队列在进行了多次入队出队操作之后,Q.front+Q.size-1有可能大于M,如Q.front指向M-1空间时,Q.front+Q.size-1=M+1,这已超出队列长度,所以需要让其与M进行求模操作,修正位置号。

  • 第15题:

    设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m,rear=m-1,此后从该循环队列中删除一个元素,则队列中的元素个数为()。

    A.m-2

    B.1

    C.m-1

    D.0


    正确答案:A

  • 第16题:

    以数组Q[0…m-1]存放循环队列中的元素,若变量front和qulen分别指示循环队列中队头元素的实际位置和当前队列的长度,则队尾元素的实际位置是()。

    A.front+qulen-1
    B.(front+qulen)modm
    C.(front+qulen-1)modm
    D.front+qulen

    答案:C
    解析:
    循环队列的元素顺序存储在数组Q中,已知循环队列中队头元素的存储位置为front。当前队列的长度为qulen,队尾元素的位置要在front上加上qulen,然后减l(第一个元素存储在front的位置上),对于循环队列求队尾的位置还要对总长度求余,所以队尾元素的实际位置为(front+qulen-1)modm。

  • 第17题:

    假设以数组Q[m]存放循环队列中的元素,同时以rear和length分别只是循环队列中的队尾位置和队列中的所含元素的个数,则该循环的队列的对满条件为()。


    正确答案:length==Maxsize

  • 第18题:

    数组Q[n]用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为()。


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

  • 第19题:

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


    正确答案:5

  • 第20题:

    设数组A[m]为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件()。


    正确答案:Q->font=Q->rear

  • 第21题:

    设栈S和队列Q的初始状态为空,元素a.b.c.d.e.f依次通过栈S,一个元素出栈后即进入队列Q。若这6个元素出队列的顺序是bdcfea.则栈S的容量至少应是()。


    正确答案:3

  • 第22题:

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

    Q[4]

    B

    Q[5]

    C

    Q[14]

    D

    Q[15]


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

  • 第23题:

    填空题
    假设以数组Q[m]存放循环队列中的元素,同时以rear和length分别只是循环队列中的队尾位置和队列中的所含元素的个数,则该循环的队列的对满条件为()。

    正确答案: length==Maxsize
    解析: 暂无解析

  • 第24题:

    填空题
    设数组A[m]为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件()。

    正确答案: Q->font=Q->rear
    解析: 暂无解析