15、数组q[M]存储一个循环队,first和last分别是首尾指针。当前队中元素个数为_____。A.(last- first+M)%MB.last-first+1C.last-first-1D.last-first

题目

15、数组q[M]存储一个循环队,first和last分别是首尾指针。当前队中元素个数为_____。

A.(last- first+M)%M

B.last-first+1

C.last-first-1

D.last-first


相似考题
更多“15、数组q[M]存储一个循环队,first和last分别是首尾指针。当前队中元素个数为_____。”相关问题
  • 第1题:

    若循环队列以数组Q[0...m-1]作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按rear=(rear+1)mod m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是______。

    A.rear-length

    B.(rear-length+m)mod m

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

    D.m-length


    正确答案:C
    解析:根据循环队列的定义,因为元素移动按照rear=(rear+1)mod m进行,则当数组 Q[m-1]存放了元素之后,下一个入队的元素将存放到Q[0],因此,队列首元素的实际位置是(rear+1-length+m)mod m。

  • 第2题:

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

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

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

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

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


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

  • 第3题:

    在一个用数组实现的循环队列类中,假定数组长度为MS,队首元素位置为first,队列长度为 length,则队尾(即最后一个)元素的位置为(37)。

    A.length+1

    B.first+length

    C.(first+length-1)%MS

    D.(first+length)%MS


    正确答案:C
    解析:在顺序队列中,已知队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置应为first+length-1。本题中考虑循环队列,因此应模队列的最大长度MS取余。

  • 第4题:

    设循环队列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进行求模操作,修正位置号。

  • 第5题:

    设顺序循环队列Q[O:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。

    A.(F-R+M)%M
    B.F-R
    C.(R-F+M)%M
    D.R-F

    答案:C
    解析:
    (R-F+M)%M是计算顺序循环队列元素个数的公式。

  • 第6题:

    在循环队列中用数组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

  • 第7题:

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


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

  • 第8题:

    用数组Q表示一个环形队列,f为当前对头元素的钱一位置,r为队尾元素的位置。假定队列中元素个数总小于n,求队列中元素个数公式是()。


    正确答案:(r-f+n)%n

  • 第9题:

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


    正确答案:5

  • 第10题:

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

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

  • 第11题:

    单选题
    设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()
    A

    R-F

    B

    F-R

    C

    (R-F+M)%M

    D

    (F-R+M)%M


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

  • 第12题:

    填空题
    在一个顺序存储的循环队列Q[0…M-1],头尾指针分别是front和rear,判断队空的条件为(),判断队满的条件为()。

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

  • 第13题:

    假设以数组Q[m]存放循环队列中的元素, 同时设置一个标志tag,以tag == 0和tag == 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。试编写与此结构相应的插入(enqueue)和删除(dlqueue)算法。


    参考答案:
      [算法描述]
      (1)初始化
      SeQueue QueueInit(SeQueue Q)
      {//初始化队列
      Q.front=Q.rear=0; Q.tag=0;
      return Q;
      }
      (2)入队
      SeQueue QueueIn(SeQueue Q,int e)
      {//入队列
      if((Q.tag==1) && (Q.rear==Q.front)) cout<<"队列已满"<  else
      {Q.rear=(Q.rear+1) % m;
      Q.data[Q.rear]=e;
      if(Q.tag==0) Q.tag=1; //队列已不空
      }
      return Q;
      }
      (3)出队
      ElemType QueueOut(SeQueue Q)
      {//出队列
      if(Q.tag==0) { cout<<"队列为空"<  else
      {Q.front=(Q.front+1) % m;
      e=Q.data[Q.front];
      if(Q.front==Q.rear) Q.tag=0; //空队列
      }
      return(e);
      }

  • 第14题:

    设循环队列的存储空间为a[ 0..20],且当前队头指针和队尾指针的值分别为8和3,则该队列中元素的个数为()。

    A.5

    В.6

    C.16

    D.17


    参考答案:C

  • 第15题:

    设某循环队列的容量为50,如果头指针front=15(指向队头元素的前-位置),尾指针rear=10(指向队尾元素),则该循环队列中共有元素个数为( )。

    A.5

    B.15

    C.35

    D.40


    正确答案:B
    队列个数-rear—front+容量。

  • 第16题:

    数组Q[0,1,2,…,n]用来表示一个循环队列,f为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的总个数小于n,计算队列中元素个数的公式为______。

    A.r-f

    B. n+f-r

    C. n+r-f

    D. (n+r-f)mod n


    正确答案:D
    解析: 参见循环队列的定义和性质。

  • 第17题:

    在一个顺序存储的循环队列Q[0…M-1],头尾指针分别是front和rear,判断队空的条件为(),判断队满的条件为()。


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

  • 第18题:

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


    正确答案:length==Maxsize

  • 第19题:

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


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

  • 第20题:

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

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

    正确答案:B

  • 第21题:

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


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

  • 第22题:

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

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

  • 第23题:

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

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

  • 第24题:

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

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