第二个2-2
       解析: 如果是普通的循环队列那答案肯定是m - 1(假满), 但这个题不是普通的循环队列  ̄へ ̄, 因为告诉了队列元素个数为size, 那么容 量肯定是m了, 用不到 '假满'。
第二个2-3
       解析: 这个题有点异议, 课本上rear应该指向末尾元素的下一个位置, 应该为(front+size)%m, 但答案给出的好像是

(front+size - 1)%m 。


2-1

为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是? (1分)

  1. 堆栈
  2. 队列



作者: DS课程组



单位: 浙江大学



2-2

若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的对象出队,则单向链表的状态是: (1分)1->2->32->3->44->1->2

  1. 答案不唯一



作者: DS课程组



单位: 浙江大学



2-3

在一个链队列中,front和rear分别为头指针和尾指针,则插入一个结点s的操作为( )。 (2分)

  1. front=front->next
  2. s->next=rear;rear=s
  3. rear->next=s;rear=s;
  4. s->next=front;front=s;



作者: 杨斌



单位: 枣庄学院



2-4

依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是( )。 (2分)

  1. a
  2. b
  3. c
  4. d



作者: 杨斌



单位: 枣庄学院



2-5

在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。 (2分)

  1. f->next=s; f=s;
  2. r->next=s; r=s;
  3. s->next=s; r=s;
  4. s->next=f; f=s;



作者: 严冰



单位: 浙江大学城市学院



2-1

若用大小为6的数组来实现循环队列,且当前frontrear的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,frontrear的值分别为多少? (2分)

  1. 2和0
  2. 2和2
  3. 2和4
  4. 2和6



作者: DS课程组



单位: 浙江大学



2-2

如果循环队列用大小为m的数组表示,且用队头指针front和队列元素个数size代替一般循环队列中的frontrear指针来表示队列的范围,那么这样的循环队列可以容纳的元素个数最多为: (2分)mm - 1m+1

  1. 不能确定



作者: DS课程组



单位: 浙江大学



2-3

如果循环队列用大小为m的数组表示,队头位置为front、队列元素个数为size,那么队尾元素位置rear为: (2分)front+sizefront+size-1(front+size - 1)%m(front+size)%m


作者: DS课程组



单位: 浙江大学