数据结构单元4练习参考答案.doc

上传人:hs****ma 文档编号:546318389 上传时间:2024-02-23 格式:DOC 页数:8 大小:83.51KB
返回 下载 相关 举报
数据结构单元4练习参考答案.doc_第1页
第1页 / 共8页
数据结构单元4练习参考答案.doc_第2页
第2页 / 共8页
数据结构单元4练习参考答案.doc_第3页
第3页 / 共8页
数据结构单元4练习参考答案.doc_第4页
第4页 / 共8页
数据结构单元4练习参考答案.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据结构单元4练习参考答案.doc》由会员分享,可在线阅读,更多相关《数据结构单元4练习参考答案.doc(8页珍藏版)》请在金锄头文库上搜索。

1、单元测验4一判断题(下列各题,正确的请在前面的括号内打;错误的打 )()(1)队列是限制在两端进行操作的线性表。()(2)判断顺序队列为空的标准是头指针和尾指针都指向同一个结点。()(3)在链队列上做出队操作时,会改变front指针的值。()(4)在循环队列中,若尾指针rear大于头指针front,其元素个数为rear- front。()(5)在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是p=h。()(6)链队列在一定范围内不会出现队满的情况。()(7)在循环链队列中无溢出现象。()(8)栈和队列都是顺序存储的线性结构。()(9)在队列中允许删除的一端称为队尾。()(10)顺序

2、队和循环队关于队满和队空的判断条件是一样的。二填空题(1) 在队列中存取数据应遵循的原则是 先进先出 。(2) 队列 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。(3) 在队列中,允许插入的一端称为 队尾 。(4) 在队列中,允许删除的一端称为 队首(或队头) 。(5) 队列在进行出队操作时,首先要判断队列是否为 空 。(6) 顺序队列在进行入队操作时,首先要判断队列是否为 满 。(7) 顺序队列初始化后,front=rear= -1 。(8) 解决顺序队列“假溢出”的方法是采用 循环队列 。(9) 循环队列的队首指针为front,队尾指针为rear,则队空的条件为

3、 front = rear 。(10) 链队列LQ为空时,LQ-front-next= NULL 。(11) 设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为 O(n)。(12) 设长度为n的链队列用单循环链表表示,若只设尾指针,则出队操作的时间复杂度为 0(1) 。(13) 在一个链队列中,若队首指针与队尾指针的值相同,则表示该队列为 空 。(14) 设循环队列的头指针front指向队首元素,尾指针rear指向队尾元素后的一个空闲元素,队列的最大空间为MAXLEN,则队满标志为: front=(rear+1)%MAXLEN 。(15) 在一个链队列中,若队首指针为f

4、ront,队尾指针为rear,则判断该队列只有一个结点的条件为: front=rear & front !NULL 。( 或 front=rear & front NULL )(16) 向一个循环队列中插入元素时,首先要判断 队尾指针 ,然后再向指针所指的位置写入新的数据。(17) 读队首元素的操作 不改变(或不影响) 队列元素的个数。 (18) 设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有 front=11,rear=19,则循环队列中还有 8 个元素。 (L= (Nrearfront)% N=(401911)% 40=8)(19)队列Q,经过下列运算:Ini

5、tQueue(Q)(初始化队列);InQueue(Q,a); InQueue(Q,b);OutQueue(Q,x); ReadFront(Q,x);QEmpty(Q);后的值是 0 。(20)队列Q经过InitQueue(Q)(初始化队列);InQueue(Q,a);InQueue(Q,b); ReadFront(Q,x)后,x的值是 a 。三选择题(1)队列是限定在( D )进行操作的线性表。 A中间 B队首 C队尾 D端点(2)队列中的元素个数是( B )。 A不变的 B可变的 C任意的 D0(3)同一队列内各元素的类型( A )。 A必须一致 B不能一致 C可以不一致 D不限制(4)队列

6、是一个( C )线性表结构。 A不加限制的 B推广了的 C加了限制的 D非(5)当利用大小为n的数组顺序存储一个队列时,该队列的最后一个元素的下标为( B )。 An-2 Bn-1 Cn Dn+1(6)一个循环队列一旦说明,其占用空间的大小( A )。 A已固定 B可以变动 C不能固定 D动态变化(7)循环队列占用的空间( A )。 A必须连续 B不必连续 C不能连续 D可以不连续(8)存放循环队列元素的数组data有10个元素,则data数组的下标范围是( B )。 A0.10 B0.9 C1.9 D1.10(9)若进队的序列为:A,B,C,D,则出队的序列是( C )。 AB,C,D,A

7、BA,C,B,D CA,B,C,D DC,B,D,A(10)四个元素按:A,B,C,D顺序连续进队Q,则队尾元素是( D )。 A AB B C CD D(11)四个元素按:A,B,C,D顺序连续进队Q,执行一次OutQueue(Q)操作后,队头元素是( B )。 A AB B C C D D(12)四个元素按:A,B,C,D顺序连续进队Q,执行四次OutQueue(Q)操作后,再执行QEmpty(Q);后的值是( B )。 A 0B 1 C 2 D 3(13)队列Q,经过下列运算后,x 的值是( B )。 InitQueue(Q)(初始化队列);InQueue(Q,a); InQueue(Q

8、,b);OutQueue(Q,x); ReadFront (Q,x);Aa Bb C0 D1(14)循环队列SQ队满的条件是( B )。 ASQ-rear=SQ-front B(SQ-rear+1)% MAXLEN =SQ-frontCSQ-rear=0 DSQ-front=0(15)设链栈中结点的结构:data为数据域,next为指针域,且top是栈顶指针。若想在链栈的栈顶插入一个由指针s所指的结点,则应执行下列( A )操作。 As-next=top-next;top-next=s; Btop-next=s; Cs-next=top;top=top-next; Ds-next=top;to

9、p=s;(16)带头结点的链队列LQ示意图如下,链队列的队头元素是( A )LQ-frontHABCD LQ-rearAA BB CC DD(17)带头结点的链队列LQ示意图如下,指向链队列的队头指针是( C )LQ-frontHABCD LQ-rearALQ-front BLQ-rear CLQ-front-next DLQ-rear-next(18)带头结点的链队列LQ示意图如下,在进行进队运算时指针LQ-front( A ) LQ-frontHABCD LQ-rearA始终不改变 B有时改变 C进队时改变 D出队时改变(19)队列Q,经过下列运算后,再执行QEmpty(Q) 的值是( C

10、 )。 InitQueue(Q) (初始化队列);InQueue(Q,a); InQueue(Q,b);OutQueue(Q,x); ReadQueue(Q,x);Aa Bb C0 D1(20)若用一个大小为6的数组来实现循环队列,且当前front和rear的值分别为3和0,当从队列中删除一个元素,再加入两个元素后,front和rear的值分别为( B )。 A5和1 B4和2 C2和4 D1和5四 写出程序运行的结果写出下列程序段的输出结果(队列中的元素类型为char)。void main( ) Queue Q; InitQueue (Q); / 初始化队列char x=E; y=C;InQ

11、ueue (Q, H);InQueue (Q, R);InQueue (Q, y);OutQueue (Q,x); InQueue (Q,x); OutQueue (Q,x); InQueue (Q, A); while (!QEmpty(Q)OutQueue (Q,y);printf(y); ;printf(x);答:输出为“CHAR”。五程序填空1假定用一个循环单链表表示一个循环队列,该队列只设一个队尾指针rear,试填空完成向循环队列中插入一个元素为x的结点的函数。typedef struct queuenode / 定义队列的存储结构int data;struct queuenode *next;qu;InQueue(rear,x) / 向队列插入元素为x的函数 qu *rear;int x; qu *head,*s; s= new qu ; s-data= x ; if (rear=NULL) / 循环队列为空,则建立一个结点的循环队列 rear=s; rear-next; else head= rear-next ; / 循环队列非空,则将s插到后面rear-next= s ;rear=s;rear-next =head;六. 算法设计题1设一个循环队列Queue,只有头指针front,不设尾指针,另设一个含

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号