您的位置:首页 > 其它

作业8--队列及其应用

2017-12-19 17:48 344 查看
2-1

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



2-2

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

2->3->4

4->1->2

答案不唯一

2-3

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

2-4

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

2-5

在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。 (2分)
f->next=s;
f=s;
r->next=s;
r=s;
s->next=s;
r=s;
s->next=f; f=s;
将新节点赋予最后一个节点(队尾)之后,2,将新节点作为队尾

2-1

若用大小为6的数组来实现循环队列,且当前
front
rear
的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,
front
rear
的值分别为多少? (2分)
2和0
2和2
2和4
2和6
初始化创建空队列时,令front=rear=0,每当插入新的队列尾元素时,rear增1,每当删除一个队列首元素时,front增1。因此,在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置。

**2-2

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

m

m+1

不能确定

2-3

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

front+size-1

(front+size)%m

(front+size-1)%m
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: