2022年数据结构习题第九章查找答案.docx
《2022年数据结构习题第九章查找答案.docx》由会员分享,可在线阅读,更多相关《2022年数据结构习题第九章查找答案.docx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 学习必备欢迎下载集合第 9 章一挑选题1.C 2.A 3.1D 3.2C 4.D 5.B 6.D 7.D 8.C 9.A 10.D 11.B 12.112.213.113.213.313.414.114.214.314.414.515.1C C C D G H E B E B B B 15.216.A 17.C 18.C 19.C 20.D 21.B 22.C 23.B 24.C 25.125.2A 26.A 27.D 28.C 29.129.230.B 31.D 32.D 33.C B F 25.334.D 35.1I 36.C A C D
2、35.2C 二判定题1. 2. 3. 4. 5. 6. 7. 8. 9. 10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.部分答案说明如下;4不能说哪种哈希函数的选取方法最好,各种选取方法有自己的适用范畴;8哈希表的结点中可以包括指针,指向其元素;11单链表不能使用折半查找方法;20按插入后中序遍历是递增序列的原就,如某结点只有右子树,而插入元素的关键字小于该结点的关键字, 就会插入到该结点的左侧,面;成为其左孩子; 这种插入就不是插入到叶子下21从平稳因子定义看, 完全二叉树任一
3、结点的平稳因子的肯定值的确是小于等于 1;但是,平稳二叉树本质上是二叉排序树,完全二叉树不肯定是排序树;故不能说完全二叉树是平稳二叉树;23某结点的左子树根结点不肯定是它的中序前驱,继;其右子树根结点也不肯定是它的中序后24在等概率下,查找胜利时的平均查找长度相同,查找失败时的平均查找长度不相同;26只有被删除结点是叶子结点时命题才正确;三填空题1n n+1 24 36,9,11,12 45 526(第 4 层是叶子结点, 每个结点两个关键字) 61,3,6,8,11,13,16,19 75,96 8m-1, m/2 -1 92,4,3 101 哈希函数 2 解决冲突的方法 3 挑选好的哈希函
4、数 4 处理冲突的方法 5 匀称 6简洁11 AVL树(高度平稳树,高度平稳的二叉排序树),或为空二叉树,或二叉树中任意结点名师归纳总结 左子树高度与右子树高度差的肯定值小于等于1; 1316 14 第 1 页,共 34 页12小于等于表长的最大素数或不包含小于20 的质因子的合数2n+1 - - - - - - -精选学习资料 - - - - - - - - - 学习必备欢迎下载30, 31.5 (块内次序查15 145 245 346 (块内次序查找) 16kk+1/2 17找)18 1 次序储备或链式储备 2次序储备且有序 3 块内次序储备,块间有序 4 散列储备19 n+1/2 20n
5、+1/n*log2n+1-1 21结点的左子树的高度减去结点的右子树的高度 22 1 次序表 2 树表 3 哈希表 4 开放定址方法 5 链地址方法 6 再哈希 7 建立公共溢 出区23直接定址法 24 logm/2 +1 25ON 26nn+1/2 27 54 2831 2937/12 30主关键字 31左子树右子树32插入删除 33 14 341126 264 333 465 35( 1)low=high 2 low+hig DIV 2 3 binsrch:=mid 4binsrch:=0 36 1 k 2 Irear 38 1p.=null 2pf=p 3p.=*t 4*t=null 四
6、应用题 1概念是基本学问的主要部分,要坚固把握;这里只列出一部分,目的是引起重视,解答 略;2( 1)散列表储备的基本思想是用关键字的值打算数据元素的储备地址( 2)散列表储备中解决碰撞的基本方法:Hi=( H(key)+di )% m,其中 m是表长, 开放定址法 形成地址序列的公式是:di 是增量;依据 di 取法不同,又分为三种:adi =1 ,2, , m-1 称为线性探测再散列,其特点是逐个探测表空间,只要散列表 中有闲暇空间,就可解决碰撞,缺点是简洁造成“ 集合” ,即不是同义词的关键字争夺同一 散列地址;bdi =12,-12,22,-22, k2(km/2) 称为二次探测再散列
7、,它削减了集合,但不简洁探测到全部表空间,只有当表长为形如4j+3 (j 为整数)的素数时才有可能;cdi = 伪随机数序列,称为随机探测再散列;再散列法 Hi=RHi(key ) i=1 , 2, , k,是不同的散列函数,即在同义词产生碰撞时,用另一散列函数运算散列地址,直到解决碰撞;该方法不易产生“ 集合” ,但增加了运算时间; 链地址法 将关键字为同义词的记录储备在同一链表中,散列表地址区间用H0.m-1 表示, 重量初始值为空指针;凡散列地址为 i (0 i m-1)的记录均插在以 Hi为头指针的链表中;这种解决方法中数据元素个数不受表长限制,插入和删除操作便利,但增加了指针的空间开
8、销;这种散列表常称为开散列表,而中的散列表称闭散列表,含义是元素个数受表长限制;建立公共溢出区设 H0.m-1为基本表,凡关键字为同义词的记录,都填入溢出区O0.m-1;(3)用分别的同义词表和结合的同义词表解决碰撞均属于链地址法;链地址向量空间中的每个元素不是简洁的地址,而是关键字和指针两个域,散列地址为i (0i m-1)的第一名师归纳总结 - - - - - - -第 2 页,共 34 页精选学习资料 - - - - - - - - - 个关键字储备在地址空间向量第学习必备欢迎下载指向i 个重量的“ 关键字” 域;前者的指针域是动态指针,同义词的链表, 具有上面的优缺点;后者实际是静态链
9、表,同义词存在同一地址向量空间(从最终向前找闲暇单元),以指针相连;节约了空间,但易产生“ 积累” ,查找效率低;(4)要在被删除结点的散列地址处作标记,不能物理的删除;否就,中断了查找通路;(5)记录 负载因子3评判哈希函数优劣的因素有:能否将关键字匀称影射到哈希空间上,有无好的解决冲突的方法,运算哈希函数是否简洁高效;由于哈希函数是压缩映像,的方法见上面 2 题;冲突难以防止; 解决冲突4哈希方法的平均查找路长主要取决于负载因子(表中实有元素数与表长之比),它反映了哈希表的装满程度,该值一般取 0.650.9 ;解决冲突方法见上面 2 题;5不肯定相邻;哈希地址为 i (0i m-1)的关
10、键字,和为解决冲突形成的探测序列 i 的同义词,都争夺哈希地址 i ;6散列地址0 1 2 3 4 5 6 7 8 9 关键字14 01 9 23 84 27 55 20 比较次数1 1 1 2 3 4 1 2 平均查找长度:ASLsucc=(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 2)%10=0(冲突) H 3=(6+3 3)%10=5 所以比较了 4 次;7由于装填因子为 0.8 ,关键字有 8 个,所以表长为 8/0.8=10 ;(1)用除留余数法,哈希函数为 H(key)
11、=key % 7 (2)散列地址 0 1 2 3 4 5 6 7 8 9 关键字 21 15 30 36 25 40 26 37 比较次数 1 1 1 3 1 1 2 6 (3)运算查找失败时的平均查找长度,必需运算不在表中的关键字,当其哈希地址为 i (0i m-1)时的查找次数;本例中m=10;故查找失败时的平均查找长度为:ASLunsucc=(9+8+7+6+5+4+3+2+1+1)/10=4.6 ASLsucc =16/8=2(4)int Delete (int hn,int k ) / 从哈希表 hn 中删除元素 k,如删除胜利返回 1,否就返回 0 i=k%7;/ 哈希函数用上面(
12、1),即 H(key) =key % 7 if (hi= maxint)/maxint 说明成空地址printf(“ 无关键字 %dn” , k); return (0); if (hi=k)hi=-max int ;return (1); / 被删元素换成最大机器数的负数 else / 采纳线性探测再散列解决冲突j=i ; for (d=1;d n-1 ;d+) i=(j +d)%n; / n为表长,此处为10 if (hi= maxint)return 0; /maxint说明成空地址if (hi=k) hi=-maxint;return (1); / for 名师归纳总结 printf(
13、“ 无关键字 %dn” , k); return 0第 3 页,共 34 页- - - - - - -精选学习资料 - - - - - - - - - 学习必备 欢迎下载 8散列地址0 1 2 3 4 5 6 7 8 9 关键字15 24 10 19 17 38 18 40 比较次数1 1 2 1 4 5 5 5 哈希表 a: ASLsucc=24/8=3 ;3 4 5 6 7 8 9 散列地址0 1 2 关键字15 17 24 10 19 40 38 18 比较次数1 3 1 2 1 2 4 4 哈希表 b: ASLsucc =18/8 9( 1)散列地址0 1 2 3 4 5 6 7 8
14、9 10 11 12 关键字13 22 53 1 41 67 46 51 30 比较次数1 1 1 2 1 2 1 1 1 (2)装填因子 =9/13=0.7 (3)ASLsucc =11/9 ( 4)ASLunsucc =29/13 10 11ASLsucc=19/12 12常用构造哈希函数的方法有:(1)数字分析法 该法事先需知道关键字集合,且关键字位数比散列表地址位数多,应选数字分布匀称的位;(2)平方取中法 将关键字值的平方取中间几位作哈希地址;(3)除留余数法 H (key )=key%p,通常 p 取小于等于表长的最大素数;(4)折叠法 将关键字分成长度相等(最终一段可不等)的几部
15、分,进行移位叠加或间界叠加,其值作哈希地址;(5)基数转换法 两基数要互素,且后一基数要大于前一基数;在哈希表中删除一个记录,在拉链法情形下可以物理 地删除; 在开放定址法下,不能物理地删除, 只能作删除标记;该地址可能是该记录的同义词查找路径上的地址,物理的删除就中断了查找路径;由于查找时遇到空地址就认为是查找失败;散列地址0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 关键字14 01 68 27 55 19 20 84 79 23 11 10 比较次数1 2 1 4 3 1 1 3 9 1 1 3 13( 1)名师归纳总结 散列地址0 1 2 3 4 5 6
16、7 8 9 10 第 4 页,共 34 页- - - - - - -精选学习资料 - - - - - - - - - 关键字4 学习必备欢迎下载13 24 32 21 12 49 38 比较次数1 1 1 2 1 2 1 2 ASLsucc = ( 1+1+1+2+1+2+1+2)/8=11/8 ASLunsucc=(1+2+1+8+7+6+5+4+3+2+1)/11=40/11 (2) 13 题图 ASLsucc =11/8 ASL unsucc=19/11 14 题( 2) ASLsucc=13/8 ASL unsucc=19/11 值得指出, 对用拉链法求查找失败时的平均查找长度有两种观
17、点;其一, 认为比较到空指针算失败;以此题为例,哈希地址0、2、5、7、9 和 10 均为比较 1 次失败,而哈希地址1 和 3 比较 2 次失败,其余哈希地址均为比较 3 次失败,因此,查找失败时的平均查找长度为 19/11 ,我们持这种观点; 仍有另一种懂得, 他们认为只有和关键字比较才运算比较次数,而和空指针比较不运算;照这种观点,此题的ASLunsucc=(1+1+2+2+2)/11=8/11 14由 hashfx=x mod 11 可知,散列地址空间是0 到 10,由于有 8 个数据,装载因子取0.7 ;(1)散列地址0 1 2 3 4 5 6 7 8 9 10 关键字33 1 13
18、 12 34 38 27 22 比较次数1 1 1 3 4 1 2 8 ASLsucc=21/8 ASLunsucc=47/11 15(1)ASL=42/12 (2)a:ASLsucc=31/12 (2)b:ASLsucc=18/12 注:此题 x 取小于等于 x 的最大整数 名师归纳总结 - - - - - - -第 5 页,共 34 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载1617查找时,对关键字49,22,38,32,13各比较一次,对21,18 各比较两次18 ASLsucc = 15/1019 ASLsuss =16/11 20名师归纳总结 散列地址0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 数据结构 习题 第九 查找 答案
限制150内