2-1若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的对象出队,则单向链表的状态是: (1分)
- A.答案不唯一
- B.2->3->4
- C.4->1->2
- D.1->2->3
作者: DS课程组
单位: 浙江大学
2-2在一个不带头结点的非空链式队列中,假设f
和r
分别为队头和队尾指针,则插入s
所指的结点运算是( )。 (2分)
- A.
s->next=f; f=s;
- B.
s->next=s; r=s;
- C.
r->next=s; r=s;
- D.
f->next=s; f=s;
作者: 严冰
单位: 浙江大学城市学院
2-3如果循环队列用大小为m的数组表示,队头位置为front、队列元素个数为size,那么队尾元素位置rear为: (2分)
- A.(front+size-1)%m
- B.(front+size)%m
- C.front+size-1
- D.front+size
作者: DS课程组
单位: 浙江大学
2-4在一个链队列中,front
和rear
分别为头指针和尾指针,则插入一个结点s
的操作为( )。 (2分)
- A.
s->next=front;front=s;
- B.
rear->next=s;rear=s;
- C.
s->next=rear;rear=s
- D.
front=front->next
作者: 杨斌
单位: 枣庄学院
2-5依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是( )。 (2分)
- A.d
- B.b
- C.c
- D.a
作者: 杨斌
单位: 枣庄学院
2-6为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是? (1分)
- A.树
- B.队列
- C.图
- D.堆栈
作者: DS课程组
单位: 浙江大学
2-7如果循环队列用大小为m
的数组表示,且用队头指针front
和队列元素个数size
代替一般循环队列中的front
和rear
指针来表示队列的范围,那么这样的循环队列可以容纳的元素个数最多为: (2分)
- A.不能确定
- B.m+1
- C.m
- D.m-1
作者: DS课程组
单位: 浙江大学
2-8若用大小为6的数组来实现循环队列,且当前front
和rear
的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front
和rear
的值分别为多少? (2分)
- A.2和4
- B.2和6
- C.2和2
- D.2和0
作者: DS课程组
单位: 浙江大学