收藏 分销(赏)

数据结构本期末综合练习6月.doc

上传人:a199****6536 文档编号:3583902 上传时间:2024-07-10 格式:DOC 页数:25 大小:229.50KB
下载 相关 举报
数据结构本期末综合练习6月.doc_第1页
第1页 / 共25页
数据结构本期末综合练习6月.doc_第2页
第2页 / 共25页
数据结构本期末综合练习6月.doc_第3页
第3页 / 共25页
数据结构本期末综合练习6月.doc_第4页
第4页 / 共25页
数据结构本期末综合练习6月.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、数据结构(本)期末综合练习1. 在数据结构和算法中,与所使用的计算机有关的是 ( B )。 A数据元数间的抽象关系 B数据的存储结构 C算法的时间复杂度 D数据的逻辑结构 2. 一种逻辑结构在存储时( C )。 A只要存储数据元素间的关系 B只能采用一种存储结构 C可采用不同的存储结构 D只要存储数据元素的值 3 .对顺序表,以下叙述中正确的是 ( A )。 A用一组地址连续的存储单元依次存放线性表的数据元素 B各个数据元素的首地址是连续的 C数据元素不能随机访问 D插入操作不需要移动元素 4 .对链表, 以下叙述中正确的是( A )。A不能随机访问任一结点 B结点占用的存储空间是连续的 C插

2、入删除元素的操作一定要要移动结点 D可以通过下标对链表进行直接访问 5设有一个长度为25的顺序表,要删除第10个元素(下标从1开始),需移动元素的个数为 ( C )。 A9 B10 C15 D16 6线性表在存储后,如果相关操作是:要求已知第i个结点的位置访问该结点的前驱结点,则采用( A )存储方式是不可行的。A单链表 B双链表 C单循环链表 D顺序表 7. 设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( A )。A.p-next=p-next-next; B.p=p-next; C.p=p-next-next;D.p-next=p ; 8栈和队列的共同特点是

3、( C )。A都是先进后出 B元素都可以随机进出 C只容许在端点处插入和删除元素 D都是先进先出 9元素1,3,5,7按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列 的可能输出序列是( A )。(进栈出栈可以交替进行)。 A7,5,3,1 B7,3,1,5 C7,5,1,3 D5,1,3,7 10元素2,4,6,8按顺序依次进栈,按该栈的的可能输出序列依次入队列,该队列的可能输出序列是( D )(进栈出栈可以交替进行)。 A8,6,2,4 B8,4,2,6 C6,2,4,8 D8,6,4,2 11 对一个栈顶指针为top的链栈进行进栈操作,设P为待进栈的结点,则执行( C )。 Ap=

4、top-next; top=topnext; Bp-next=top; Cp-next=top;top=p; Dtop=p; 12在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,则从该对列中删除一 个结点并把结点的值保存在变量x中的运算为( C )。 Ax=rdata;r=rnext; Br=rnext; x=rdata Cx=fdata;f=fnext; Df=fnext; x=fdata 13设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第33号元素对应于矩阵中的元素是( D )。(矩阵中的第1个元素是a

5、1,1 ) Aa7,6 Ba10,8 Ca9,2 Da8,5 14设有一个20阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第38号元素对应于矩阵中的元素是( C )。(矩阵中的第1个元素是a1,1 ) Aa10,8 Ba7,6 Ca9,2 Da8,5 15设有一个17阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a10,6 在一维数组B中的下标是( C )。(矩阵中的第1个元素是a1,1 )A45, B18 C51 D53 16在C语言中,分别存储 “S”和s,

6、各需要占用( D )字节。 A一个和两个 B两个 C一个 D两个和一个 17串函数StrCmp(“ABCd”,“ABCD”)的值为( C )。 A0 B-1 C1 D3 18一棵有n个结点,采用链式存储的二叉树中,共有( C )个指针域被有效使用(即指针域为非空)。 An+1 Bn Cn-1 Dn-2 19一棵采用链式存储的二叉树中有n个指针域为空,该二叉树共有( C )个结点。 An+1 Bn Cn-1 Dn-2 20在一棵二叉树中,若编号为i的结点存在双亲结点,则双亲结点的顺序编号为( B )。 Ai/2.0 Bi/2向下取整 C2i+1 Di+2 21设一棵哈夫曼树共有n个非叶结点,则该

7、树有( D )个结点。 A2n B2n+2 C2n-1 D2n+1 22设一棵哈夫曼树共有2n+1个结点,则该树有( A )个非叶结点。 An Bn+1 Cn-1 D2n 23一棵 结点数31nnext=p-next; (p-next)-prior=q;然后再用语句q-prior=p;和语句_ p-next=q;_。 8在双向链表中,要在p所指的结后插入q所指的结点(设q所指的结点已赋值),其中所用的一条语句(p-next)-prior=q;的功能是使P所指结点的_直接前驱的左指针_指向q 。 9在一个单向链表中,要删除p所指结点的直接后继结点。则可以用操作_ p-next=p-next-ne

8、xt;_。(用一条语句) 10设有一个带头结点的,头指针为head的单向链表,p指向表中某一个结点,且有p-next= =NULL,现要删除头结点,并使该单向链表构造成单向循环链表,通过操作head=head-next; _ p-next= head;_。 11向一个栈顶指针为top的链栈中插入一个p所指结点时,可执行_ p-next=top; top=p;_操作。 ( 填两条语句, 结点的指针域为next) 12从一个栈顶指针为top的链栈中删除一个结点时,用d保存被删结点的值,可执行_ d=top-data;top=top-next;_。(结点的指针域为next,数据域为data) 13在

9、一个带头结点的链队中,设front和rear分别为队头和队尾指针,则删除一个结点的操作为 p=front-next;_ _ front-next _=p-next;(结点的指针域为next, p为辅助用指针) 14.循环链队列中,设front和rear分别为队头和队尾指针,(最多元素为MaxSize,采用少用一个元素的模式),判断循环链队列为满的条件为_ front= =(rear+1)% MaxSize _ 。15设有n阶对称矩阵A,用一维数组s压缩存储A的下三角元素,s的下标从零开始,最后一个元素的下标为27,则n=_7_。(矩阵中的第1个元素是a1,1 ) 16对稀疏矩阵进行压缩存储,可

10、采用三元组表,一个6行7列的稀疏矩阵A相应的三元组表共有8个元素,则矩阵A共有_34_个零元素。17. 一棵3度的树,其中3度结1个,2度结2个,1度结2个,则该树共有_5_个叶结点。 18.一棵有8个权重值构造的哈夫曼数,共有 15 个结点。 19一棵有7个叶结点的二叉树,其1度结点数的个数为2,则该树共有_15_个结点 20一棵有18个结点的二叉树,其2度结点数的个数为8,则该树共有_1_个1度结点 21如图3所示的二叉树,其中序遍历序列为_512389746_。 3c7gd6f5e4dc2b1a8hd9图322如图4所示的二叉树,其先序遍历序列为_215347896_。 3c7gd6f5

11、e4dc2b1a8hd9 图423二叉排序树或者是一棵空树,或者是一棵具有下列性质的二叉排:若它的左子树非空,则左子树的所有结点的值都小于它的根结点的值;若它的右子树非空,则右子的所有结点的值都大于(若允许结点有相同的值,则大于等于)它的根结点的值。这种说法是_不正确_的。(回答正确或不正确) 24在查找表中,通过记录的某关键字能唯一地确定一个记录,该关键字称为_主关键字_。 三、综合题1 (1) 以3,4,5,8,9,10作为叶结点的权,构造一棵哈夫曼树。 (2) 给出相应权重值叶结点的哈夫曼编码。 (3) 一棵哈夫曼树有2n-1个结点,它是共有多少个权重值构造而成的?简述理由? (1)10

12、98791293543933171552218 图7 (2) 3 0000 4 0001 5 001 10 01 8 10 9 11 (3)n个,因为非叶结点数比叶结点数少一个,而权值个数=叶结点数2(1)对给定权值3,1 ,4,4,5,6,构造深度为5的哈夫曼树。(设根为第1层) (2) 求树的带权路径长度。(3)链接存储上述哈夫曼树,结点中共有多少个指针域为空,说明理由.(1)65435423418145197896434531213 图8(2) WPL=3*4+1*4+4*3+6*2+4*2+5*2=58(3) 共11个结点,22个指针域,除根结点外,每个结点对应一个指针域.,共10个指

13、针域非空,故 有 22-10=12个空指针域,3(1)简述拓扑排序的步骤。 (2)说明有向图的拓扑序列不一定是唯一的原因。 (3)如何利用拓扑排序算法判定图是否存在回路。 (4)设有向图G如下,写出首先删除顶点1的3种拓扑序列。1234543465 图5(1) 循环执行以下两步 选择一个度为0的顶点并输出 从网中删除此结点及所有出边(2) 因为选择一个度为0的顶点时不一定是唯一的(3) 由顶点活动网构造拓扑序列的过程中,输出结点后,余下的结点均有前驱 (4) 152364 152634 1562344. (1) 如下的一棵树,给出先序遍历序列 (2) 把1,2,3,4,5,6,7,8,9填人,

14、使它成为一棵二叉排序树 提示:设图中的树是二叉排序树,找出中序遍历序列与 1,2,9的对应关系 (3) 请在该树中再插入一个结点3.5作为叶结点,并使它仍然是一棵二叉排序树。A1A2A43A7A5A9A8A3A6 图6(1) A1 A2 A4 A7 A8 A5 A9 A3 A6 (2) (3)7421563893.5 图95设有序表为(21,22,23,24,25,26,27,28,29,30,31,32),元素的下标从 0开始。 (1)说出有哪几个元素需要经过4次元素间的比较才能成功查到。(2)画出对上述有序表进行折半查找所对应的判定树(树结点用数值表示)(3)设查找元素为5,需要进行多少次

15、元素间的比较才能确定不能查到。 (4)求在等概率条件下,成功查找的平均比较次数?2431427173222818251522112312101000000302026162322132919(1) 5(2) 图10(3) 3 (4) ASL=(1+2*2+3*4+5*4)/12=37/126设查找表为(5,6,7,8,9,10,11,12,13,14) (1)画出对上述有序表进行折半查找所对应的判定树(要求以数据元素作为树结点) (2) 给出二叉排序树的定义,针对上述折半查找所对应的判定树的构造过程,说明判定树 是否是二叉排序树(设树中没有相同结点)?(3) 为了查找元素5.5,经过多少次元素

16、间的比较才能确定不能查到?971014118512136(1)(2) 二叉排序树或者是一棵空树,或者是一棵具有下列性质的二叉排:若它的左子树 非空,则左子树的所有结点的值都小于它的根结点的值;若它的右子树非空,则右子 树的所有结点的值都大于(若允许结点有相同的值,则大于等于)它的根结点的值; 左,右子树也是一棵二叉排序树,按定义判定树是二叉排序树。 (3) 3次四、程序填空题1以下程序是快速排序的算法设待序的记录序列存放在astart,aend中,按记录的关键字进行快速排序, 先进行一次划分,再分别进行递归调用 void quicksort ( NODE a , int start ,int

17、end ) int i,j; NODE mid ; if (start=end ) return; i=start; j=end; mid=ai; while (ij) while(imid.key) j- -; if(ij) ai=aj; _ i+_; while(ij & ai.key=mid.key) _ i+_; if(ij) _ aj=ai;_ _ j-;_ ai=mid; quicksort (a,stat, i-1); quicksort _(a, i+1,end);_ 2以下函数为直接选择排序算法,对a1,a2,an中的记录进行直接选择排序,完成程序中的空格typedef st

18、ruct int key;NODE; void selsort(NODE a,int n)int i,j,k;NODE temp;for(i=1;i= _n-1_;i+) k=i; for(j=i+1;j= _n_;j+) if(aj.keydata=x; p-next=NULL; _(2) rear-next=p _; rear= _(3)p_; 4 .设有一个头指针为head的不带头结点单向链表, 且p、q是指向链表中结点类型的指针变量,p指向链表中某结点a(设链表中没有结点的数据域与结点a的数据域相同), 写出相关语句 (1).使该单向链表成为单向循环链表 (2) 删去a结点 q=p;

19、x=p-data;while (q-next!=NULL)q=q-next; (1) _(1) q-next=head;_ q=p; p=p-next;while(p-data!=x) q=p;_(2) p=p-next;_(3) q-next=p-next;_期末综合练习二一、单项选择题1. 数据结构在计算机内存中的表示是指 ( B ) 。 A数据元素之间的关系 B数据的存储结构 C数据元素的类型 D数据的逻辑结构 2 .结构中的元素之间存在一对多的关系是( C )。 A集合 B线性结构 C树形结构 D图状结构 3 . 结构中的元素之间存在多对多的关系是( D )。 A集合 B线性结构 C树

20、形结构 D图状结构 4.对不带头结点的单向链表,判断是否为空的条件是( A )(设头指针为head)。Ahead=NULL Bhead-next= =NULL Chead-next= =head Dhead =NULL 5 . 设有一个长度为20的顺序表,要在第5个元素之前插入1个元素(也就是插入元素作为新表的第5个元素),则移动元素个数为( B )。 A15 B16 C. 5 D4 6. 在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,可用的语句是( D )。 Ap=q-next; p=p-next; Bp-next=q ; p=p-next; Cp

21、-next=q-next;q=p; Dp=p-next; q-next=p; 7在一个尾指针为rear的不带头结点的单循环链表中,插入一个s所指的结点,并作为第一个结点,可执行( D )。 Arearnext= s; snext=rearnext Brearnext=snext; Crear=snext Dsnext=rearnext ; rearnext=s;8一个栈的进栈序列是1,2,3,4,5,则栈的不可能输出序列是( B )(进栈出栈可以交替进行)。A12345 B43512 C45321 D54321 9元素a,b,c,d按顺序依次进栈,则该栈的可能输出序列是( C )(进栈出栈可以

22、交替进行)。 Ac,a,b,d Bd,b,c,a Ca,c,b,d Dd,c,a,b 10一个队列的入队序列是2,4,6,8,按该队列的输出序列使各元素依次入栈,该栈的可能输出序列是 ( A )。 A8,6,4,2 B6,2,4,8 C8,4,2,6 D8,2,4,6 11从一个栈顶指针为top的链栈中取栈顶元素,用变量x保存该元素的值,则执行( B )。 Ax=top-data; top=topnext; Bx=top-data; Ctop=top-next; x=top-data; Dtop=top-next; x=data; 12在一个链队中,假设f和r分别为队头和队尾指针,已生成一个结

23、点p,要为结点p赋 值x,并入队的运算为( B )。 A . p-data=x; p-next=NULL; f-next=p; f=p; B p-data=x; p-next=NULL ;r-next=p;r=p; C p-data=x; p-next=r;r=s; D p-data=x; p-next=f;f=s; 13设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该矩阵是( C )阶的对称矩阵。(矩阵中的第1个元素是a1,1 )A5 B20 C10 D15 14设有一个25阶的对称矩阵A,采用压缩存储的方式

24、,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a7,6在一维数组B中的下标是( D )。 (矩阵中的第1个元素是a1,1 )A34 B14 C26 D27 15设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第53号元素对应于矩阵中的元素是( B )。(矩阵中的第1个元素是a1,1 )Aa8,5 , Ba10,8 Ca8,1, Da7,6 16.以下程序段的结果是 c的值为( B )。char a8= “1236789”, int *p=a, int c=0; while(*p+)c+;

25、 A8, B7 C10 D12 17 .以下程序段的结果是 c的值为( A )。char * a5=“12378”, “1237”, “1236789”, “1237”, “123708”;int i,c=0; for(i=0;i5:i+) if(StrCmp(ai, “1237”)=0)c+;A2, B5 C0 D1237 18一棵有23个结点,采用链式存储的二叉树中,共有( A )个指针域为空。 A24 B25 C23 D45 19一棵采用链式存储的二叉树中,共有n个指针域被有效使用(即指针域为非空)。该二叉树有( A )个结点。 An+1 Bn Cn-1 Dn-2 20在一棵二叉树中,若

26、编号为i的结点是其双亲结点的左孩子,则双亲结点的顺序编号为(A)。 Ai/2 B2i-1 C2i+1 Di/2 -1 21在一棵二叉树中,若编号为i的结点是其双亲结点的右孩子,则双亲结点的顺序编号为(D)。 Ai/2.0 Bi/2+1 C2i+1 Di/2向下取整 22设一棵哈夫曼树共有2n+1个叶结点,则该树有( C )个叶结点。 An-1 Bn Cn+1 D2n 23设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有2n个指针域为空。则该树有( D )个叶结点。 A2n B2n+1 C2n+2 Dn 24已知如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历

27、,则可能得到的一种顶点序列为( D )。 Aabecdf Bacfebd Caebcfd Daedbfc bdfeca图125已知如图2所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( C )。 Aacedfb Baecfdb Caecdfb Dacebfd bdfeca图226已知如图3所示的一个图,若从顶点B出发,按广度优先法进行遍历,则可能得到的一种顶点序列为( C )。 A.BADEHCFG B.BADEHCGF C.BADECHFG D.BADEHCFG FGV7ABCHV8DV4E图327一组记录的关键字序列为(42,37,62,40,32,92

28、),利用快速排序算法,以第一个关键字为分割元素,算法经过一次划分后结果为( A )。 A32,37,40,42,62,92 B37,32,40,42,62,92 C32,40,37,42,62,92 D32,37,42,40,62,92 28一组记录的关键字序列为(46,38,56,40,79,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( B )。 A40,38,46,79,56,84 B40,38,46,56,79,84C40,38,46,84,56,79 D38,40,46,56,79,84 29一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为( A )。 A39,46,41,57,80,47 B39,47,46,80,41,57C41,39,46,47,57,80 D39,80,46,47,41,57 30在有序表21,23,28,33,43,45,46,73,77,78,89,99,106

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服