网站大量收购独家精品文档,联系QQ:2885784924

数据结构范例.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2) 用链地址法处理冲突 0 1 2 3 4 5 6 7 8 9 10 11 12 14 ^ 1 27 79 68 55 19 84 20 23 10 11 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ASL=(1*6+2*4+3+4)/12=1.75 关键字(19,14,23,1,68,20,84,27,55,11,10,79) 哈希表的查找 使用平均查找长度ASL来衡量查找算法,ASL取决于   哈希函数   处理冲突的方法   哈希表的装填因子 哈希表的查找效率分析 ? 越大,表中记录数越多,说明表装得越满,发生冲突的可能性就越大,查找时比较次数就越多。 O(1)? ASL与装填因子?有关!既不是严格的O(1),也不是O(n) 哈希表的查找效率分析 对哈希表技术具有很好的平均性能,优于一些传统的技术 链地址法优于开地址法 除留余数法作哈希函数优于其它类型函数 几点结论 构造Hash函数的方法: 将标识符中的每个字符转换为一个非负整数 将得到的各个整数组合成一个整数(可以将第一个、中间的和最后一个字符值加在一起,也可以将所有字符的值加起来) 将结果数调整到0~M-1范围内,可以利用取模的方法,Ki%M(M为素数) 哈希表应用举例 编译器对标识符的管理多是采用哈希表 1.熟练掌握顺序表和有序表(折半查找)的查找算法及其性能分析方法; 2.熟练掌握二叉排序树的构造和查找算法及其性能分析方法; 3.掌握二叉排序树的插入算法,了解二叉排序树的删除算法; 4. 熟练掌握哈希函数(除留余数法)的构造 5.熟练掌握哈希函数解决冲突的方法及其特点 开放地址法(线性探测法、二次探测法) 链地址法 给定实例计算平均查找长度ASL,ASL依赖于装填因子? 小结 不同插入次序的序列生成不同形态的二叉排序树 40 24 55 12 37 12 24 37 40 55 40,24,12,37,55 12,24,37,40,55 二叉排序树的操作-生成 二叉排序树的操作-删除 将因删除结点而断开的二叉链表重新链接起来 防止重新链接后树的高度增加 * 北京林业大学信息学院 删除叶结点,只需将其双亲结点指向它的指针清零,再释放它即可。 被删结点缺右子树,可以拿它的左子女结点顶替它的位置,再释放它。 被删结点缺左子树,可以拿它的右子女结点顶替它的位置,再释放它。 被删结点左、右子树都存在,可以在它的右子树中寻找中序下的第一个结点(关键码最小),用它的值填补到被删结点中,再来处理这个结点的删除问题。 第i层结点需比较i次。在等概率的前提下,上述两图的平均查找长度为: 40 24 55 12 37 12 24 37 40 55 查找的性能分析 平均查找长度和二叉树的形态有关,即, 最好:log2n(形态匀称,与二分查找的判定树相似) 最坏: (n+1)/2(单支树) 查找的性能分析 40 24 55 12 37 12 24 37 40 55 问题:如何提高二叉排序树的查找效率? 尽量让二叉树的形状均衡 左、右子树是平衡二叉树; 所有结点的左、右子树深度之差的绝对值≤ 1 平衡二叉树 平衡因子:该结点左子树与右子树的高度差 任一结点的平衡因子只能取:-1、0 或 1;如果树中任意一个结点的平衡因子的绝对值大于1,则这棵二叉树就失去平衡,不再是AVL树; 对于一棵有n个结点的AVL树,其高度保持在O(log2n)数量级,ASL也保持在O(log2n)量级。 7.4 散列(哈希)表的查找 基本思想:记录的存储位置与关键字之间存在对应关系,Loc(i)=H(keyi) 优点:查找速度极快O(1),查找效率与元素个数n无关 哈希函数 关键字 集合 存储地址 集合 hash 若将学生信息按如下方式存入计算机,如: 将2001011810201的所有信息存入V[01]单元; 将2001011810202的所有信息存入V[02]单元; …… 将2001011810231的所有信息存入V[31]单元。 查找2001011810216的信息,可直接访问V[16]! 例1 数据元素序列(14,23,39,9,25,11),若规定每个元素k的存储地址H(k)=k,请画出存储结构图。 … 14 … 11 … 9 … 内容 地址 … 39 … 25 24 23 14 11 9 23 25 39 例2 根据哈希函数H(k)=k 查找key=9,则访问H(9)=9号地址,若内容为9则成功; 若查不到,则返回一个特殊值,如空指针或空记录。 如何查找 … 14 … 11 … 9 … 内容 地址 … 39 … 25 24 23 14 11 9 23 25 39 哈希方法(杂凑法) 选取某个函

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档