资源描述:
《数据结构复习题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《数据结构》试题(开卷)姓名班级(电信系本科2002级2003年12月)题号一二三总分题分323830100得分得分一、回答下列问题(每题4分,共32分)1.对于一个有10000个结点的二叉树,树叶最多有多少个?最少有多少个?答:最多是完全二叉树的形态,即5000个叶子;最少是单支树的形态,即1个叶子。2.已知一棵二叉树的中序序列和后序序列分别为:DBGEACHF和DGEBHFCA,则该二叉树的前序序列是什么?答:是:ABDEGCFH3.设有1000个无序的元素,需排出前10个最大(小)的元素,你认为采用哪种排序方法最快?为什么?答:
2、用锦标赛排序或堆排序很合适,因为不必等全部元素排完就能得到所需结果,时间效率为O(nlog2n);即O(1000log21000)=O(10000)锦标赛排序的准确比较次数为:n-1+9log2n=999+9log21000=999+9×10=1089堆排序的准确比较次数为:n-1+9log2n=999+9log21000=999+9×10=1089若用冒泡排序也较快,最多耗费比较次数为(n-1+n-2+……+n-10)=10n-55=10000-55=9945(次)4.在KMP算法中,已知模式串为ADABCADADA,请写出模式串的
3、next[j]函数值。答:01121123435.中序遍历的递归算法平均空间复杂度为多少?答:要考虑递归时占用了栈空间,但递归次数最多不超过树的高度,所以空间复杂度为O(log2n)6.欲将无序序列(24,79,13,36,70,96,12,10,36*,49,100,27)中的关键码按升序重新排列,请写出快速排序第一趟排序的结果序列。另外请画出堆排序(小根堆)的初始堆。答:①快速排序第一趟排序的结果序列为:10,12,13,[24],70,96,36,79,36*,49,100,27(注意要按振荡式逼近算法实现)2479133670
4、96121036*4910027②堆排序的初始堆如下,注意要从排无序堆开始,从最后一个非终端结点开始,自下而上调整,而且要排成小根堆!初始堆序列为:10,24,12,79,49,27,13,36,36*,70,100,96102412794927133636*7010096无序堆有序初始堆87.已知一组关键字为(10,24,32,17,31,30,46,47,40,63,49),设哈希函数H(key)=keyMOD13。请写出用线性探测法处理冲突构造所得的哈希表。答:0123456789101112494017313230464710
5、24638.算法复杂度O(1)的含义是什么?答:它表示与输入的元素规模无关,是一个常数(但不一定是1)。或:它表示该算法执行时耗费时间的长短或占用辅助空间的多少与元素个数n无关,若能达到这样的时间效率或空间效率,将是最理想的算法。得分二、综合题(4小题,共38分)1.下图为某无向图的邻接表,按教材算法7.5和7.6分别写出深度优先搜索和广度优先搜索的结果,并画出逻辑结构图。(10分)12345678910A5^B37^C267^D^E1^F3^G23^H910^I8^J8^答:深度优先搜索(DFS)结果为:AEBCFGDHIJ广度优先
6、搜索(BFS)结果为:AEBCGFDHIJ这是有着4个连通分量的非连通图。AEBCFGHIDJ2.设A~H8个字符出现的概率为:w={0.10,0.16,0.01,0.02,0.29,0.10,0.07,0.25},8设计最优二进制码并计算平均码长。如果设计最优三进制编码(即可用0,1,2三种符号进行编码),画出最优三叉树并计算平均码长。(10分)若按教材算法,合并规律应当如下:平均码长为:ΣPiWi==3×(0.1+0.16+0.1)+5×(0.01+0.02)+2×(0.29+0.25)+4×0.07=2.5901.0000.45
7、0.5500.200.250.260.2900.100.1000.030.07A0.100.160.010.02A:001B:101C:00000D:00001E:11F:100G:0001H:01答:最优二进制编码不惟一,但WPL惟一。平均码长仍为:ΣPiWi=2.59A:100B:001C:00000D:00001E:01F:101G:0001H:111.000.550.450.260.290.200.250.100.160.030.070.100.100.010.02编码为:A:02B:21C:000D:001E:1F:20G:
8、01H:221.000120.290.5100.20200.030.070.100.100.160.250.010.02对三进制编码,由于总共有8个字符,8%3=2,故第一次构建最优树只有2个结点,则最优三叉树为平均码长