数据结构课后习题参考答案完整版资料_第1页
数据结构课后习题参考答案完整版资料_第2页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。(1)O( 1)(2)O( m*n)(3)O( n2)(4)O (log3n)(5). 因为 x+共执行了 n-1+ n-2+仁 n(n-1)/2,所以执行时间为 O ( n2)(6)0( .n)第 2 章线性表1选择题babadbcabdcddac2算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。ElemType Max (Li nkList L )if(L-n ext=NULL) return NULL;pmax=L-n ext;法设计题(2)回文是指正读反读均相同的字符序列,如abba和abdba”均是回文

2、,但good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)?根据提示,算法可设计为:合应用题(1)已知模式串 t= abcaabbabcab 写出用 KMP 法求得的每个字符对应的next 和 nextval 函数值。模式串 t 的 next 和 nextval 值如下:j12345678910 11 12t 串abcaabbab cabn extj011122312345n extvalj011021301105(3)数组 A 中,每个元素 Ai,j的长度均为 32 个二进位,行下标从-1 到 9,列下标从 1 到 11,从首地址 S 开始连续存放主存储器中,

3、主存储器字长为16 位。求:1存放该数组所需多少单元?2存放数组第 4 列所有元素至少需多少单元?3数组按行存放时,元素 A7,4的起始地址是多少?4数组按列存放时,元素A4,7的起始地址是多少?每个元素 32 个二进制位,主存字长16 位,故每个元素占 2 个字长,行下标可平移至1 到 11。(1) 242(2) 22(3) s+182(4) s+142请将香蕉 banana 用工具 H( ) Head( ),T( ) Tail() 从 L 中取出。L=(apple,(ora nge,(strawberry,(ba nan a),peach),pear)H(H(T(H (T(H(T(L)(5

4、)写一个算法统计在输入字符串中各个不同字符出现的频度并将结果存入文件(字符串中的合法字符为A-Z 这 26 个字母和 0-9 这 10 个数字)。void Count ()/统计输入字符串中数字字符和字母字符的个数。int i , num36;char ch ;for(i=0;i36;i+)numi=0;/ 初始化while (ch= getchar () != #)/#表示输入字符串结束。if ( O =ch= 9) i=ch 48;numi+ ;/数字字符else if ( A =ch= Z) i=ch-65+10;numi+ ; / 字母字符for (i=0 ; i10 ; i+ )/

5、输出数字字符的个数printf (数字 d 的个数=% dn ”,i , numi);for (i = 10; ilchild=NULL&T-rchild=NULL)return 1; / 判断该结点是否是叶子结点(左孩子右孩子都为空),若是则返回 1elsereturn LeafNodeCou nt(T-lchild)+LeafNodeCou nt(T-rchild);(3)交换二叉树每个结点的左孩子和右孩子。void Cha ngeLR(BiTree &T)BiTree temp;if(T-lchild=NULL& T-rchild=NULL)return;else

6、temp = T-lchild;T-lchild = T-rchild;T-rchild = temp;Cha ngeLR(T-lchild);Cha ngeLR(T-rchild);1 选择题CBBBCBABAADCCDDB2应用题(1)已知如图所示的有向图,请给出: 每个顶点的入度和出度;邻接矩阵;邻接表;逆邻接表。(2)已知如图所示的无向网,请给出:邻接矩阵;邻接表;最小生成树图无向网b4a4a3b5b9d6d5c5c3c5b5c5d7e3f2d4d5d5e7f3g2h6g6e9h5f64A3063(3)已知图的邻接矩阵如所示。试分别画出自顶点1 出发进行遍历所得的深度优先生成树和广度优

7、先生成树。第 7 章查找1 选择题CDCABCCCDCBCADA2应用题(1 )假定对有序表:(3, 4, 5, 7, 24, 30, 42, 54, 63 , 72, 87, 95)进行折半查找,试回答下列问题:1画出描述折半查找过程的判定树;2若查找元素 54,需依次与哪些元素比较?3若查找元素 90,需依次与哪些元素比较?4假定每个元素的查找概率相等,求查找成功时的平均查找长度。1先画出判定树如下(注: mid= (1+12)/2 =6):D终点i=1i=2i=3i=4i=5i=6b15(a,b)15(a,b)15(a,b)15b)15(a,b)15(a,b)c2(a,c)d12(a,d

8、)12(a,d)11(a,c,f,d)11(a,c,f,d)eoo10(a,c,e)10(a,c,e)foo6(a,c,f)gcoco16(a,c,f,g)16(a,c,f,g).14(a,c,f,d,g)S终 点集a,ca,c,fa,c,f,ea,c,f,e,da,c,f,e,d,ga,c,f,e,d,g,bi斯特拉算法求出从顶点 a 到其他各顶点间的最短路径,完成表。深度优先生成树广度优先生曲树(4)有向网如图所示,试用迪杰7I0 00曲0 01 00 D000010D001Q000104245472952查找元素 54,需依次与 30, 63, 42, 54 元素比较;3查找元素 90,

9、需依次与 30, 63,87, 95 元素比较;4求 ASL 之前,需要统计每个元素的查找次数。判定树的前 3 层共查找 1+ 2X2 + 4X3=17 次;但最后一层未满,不能用 8X4,只能用 5X4=20 次,所以 ASL = 1/12 ( 17+ 20)= 37/12 (2)在一棵空的二叉排序树中依次插入关键字序列为12 , 7, 17, 11, 16, 2, 13, 9, 21, 4,请画出所得到的二叉排序树。2 11 16 21 / /4913验算方法:用中序遍历应得到排序结果:2,4,7,9,11,12,13,16,17 , 21(5)设哈希表的地址范围为017,哈希函数为:H

10、(key) =key%16。用线性探测法处理冲突,输入关键字序列:(10, 24, 32, 17, 31, 30, 46, 47, 40, 63, 49),构造哈希表,试回答下列问题:1画出哈希表的示意图;2若查找关键字 63,需要依次与哪些关键字进行比较?3若查找关键字 60,需要依次与哪些关键字比较?4假定每个关键字的查找概率相等,求查找成功时的平均查找长度。画表如下:012345678910111213141516173217634924401030314647查找 63,首先要与 H(63)=63%16=15 号单元内容比较,即63 vs 31 ,no;然后顺移,与 46,47,32,

11、17,63 相比,一共比较了 6 次!查找 60,首先要与 H(60)=60%16=12 号单元内容比较,但因为12 号单元为空(应当有空标记),所以应当只比较这一次即可。对于黑色数据元素,各比较1 次;共 6 次;对红色元素则各不相同,要统计移位的位数。“63”需要 6 次,“49”需要 3 次,“40”需要 2 次,“46”需要 3次,“ 47”需要 3 次,所以 ASL=1/11 (6 + 2+ 3X3+6)= 23/11(6)设有一组关键字(9, 01, 23, 14, 55, 20, 84, 27),采用哈希函数:H(key) =key %7,表长为 10,用开放地址法的二次探测法处

12、理冲突。要求:对该关键字序列构造哈希表,并计算查找成功的平均查找长度。散列地址0123456789关键字140192384275520比较次数11123412平均查找长度: AS%c= (1+1 + 1+2+3+4+1+2) /8=15/8以关键字 27 为例:H( 27) =27%7=6(冲突) H1= (6+1) %10=7(冲突)H2= (6+2) %10=0 (冲突)H3= (6+3) %10=5 所以比较了 4 次。12、第 8 章排序1 选择题CDBDCBCDBCBCCCA2应用题(1)设待排序的关键字序列为 12 , 2, 16, 30, 28, 10, 16* , 20 , 6

13、 , 18,试分别写出使用以下排序方法,每趟排序结束后关键字序列的状态。12 6210122830 16*2016186261012283016*201618 28 261012181616*20 2830 182610 1216*161820283016*2 6101216* 1618 202830左子序列递归深度为 1,右子序列递归深度为 3简单选择排序2121630281016*20618261630281016*201218261030281616*201218261012281616*203018261012162816*2030184冒泡排序5快速排序简单选择排序堆排序二路归并排序

14、直接插入排序2121630281016*206182121630281016*206182121630281016*206182121628301016*206182101216283016*20618210121616*283020618210121616*202830618261012161618202830折半插入排序排序过程同希尔排序(增量选取 5,3,1)166181216*203028(增量选取 5)1210181616*203028(增量选取 3)10121616*18202830(增量选取1)冒泡排序21216281016*2061830

15、212161016*206182830212101616*6182028302101216616*182028302101261616*182028302106121616*182028302610121616*182028302610121616*18202830快速排序1直接插入排序2折半插入排序希尔排序(增量选取 5,3,1)10 26 22 6每趟排序结束后关键字序列的状态。2610121616182030282610121616*1820283026 10 1216 16* 18 202830: 二路归并排序2 1216 3010 28 16 * 206 182 12 16 3010 16*20 286 182 10 1216 16* 20 28 306 182 6 10 12 16 16* 18 20 28 30 堆排序第一步,形成初始大根堆(详细过程略),第二步做堆排序。交换 1 与 9 对象从 1 到 8 重新形成堆交换 1 与 8 对象交换 1 与 7 对象交换 1 与 6 对象交换 1 与 5 对象从 1 到 3 重新形成堆父换 1 与 2 对象得到结果3 算法设计题(1)试以单链表为存储结构,实现简单选择排序算法。void Lin kedListSelectSort(L in kedList head)/本算法一趟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论