itgle.com

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

题目

设循环队列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


相似考题
更多“设循环队列Q的定义中有front和size两个域变量,其中front表示队头元素的指针,size表示队列的长度, ”相关问题
  • 第1题:

    设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。

    A.s->next=rear;rear=s;
    B.front->next=s;front=s;
    C.rear->next=s;rear=s;
    D.s->next=front;front=s;

    答案:C
    解析:
    向队列插入元素,即入队操作,应该在队尾进行,所以需要修改尾指针,实现新结点的人队。

  • 第2题:

    设循环队列采用一维数组A[0...15]存储,队头指针front=10,元素个数size=6,在插入两个新元素后,队尾位置是()

    A.0

    B.1

    C.15

    D.17


    1

  • 第3题:

    设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针 变量s指向将要入队列的结点X,则入队列的操作序列为()。

    A.front->next=s;front=s;

    B.s->next=rear;rear=s;

    C.rear->next=s;rear=s;

    D.s->next=front;front=s;


    C

  • 第4题:

    设某循环队列Q的定义中有front和rear两个域变量,其中,front指示队头元素的位置,rear指示队尾元素之后的位置,如下图所示。若该队列的容量为M,则其长度为(57)。

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

    答案:D
    解析:
    本题考查数据结构基础知识。根据题目中所给的示意图,Q.front为队头元素的指针,Q.rear表示队尾元素之后的一个空位置,故队列长度为Q.rear-Q.front,由于队列中存储位置编号是在0~M-1之间循环的,Q.rear-Q.front的结果有可能是负数,故在Q.rear-Q.front基础上加上M可恢复为正数,而此正数有可能超出0~M-1的范围,故用整除,M取余运算恢复一下,因此长度计算的式子为(Q.rear-Q.front+M)%M。

  • 第5题:

    假设有循环队列Q,存放数据元素的队列长度为M,设Q.front指向队列中队头元素, Q.rear指向队尾元素的下一个位置,则 表示队为空,而 表示队满。


    错误