数据结构宗大华宗杰黄芳数据结构大本课件-8课件教学.pptVIP

数据结构宗大华宗杰黄芳数据结构大本课件-8课件教学.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 查找 8.1 查找的基本概念 8.2 静态查找算法 8.2.1 顺序查找 8.2.2 折半查找 8.3 二叉查找树 8.3.1 二叉查找树及查找算法 8.3.2 二叉查找树的插入 8.3.3 二叉查找树的删除 8.4 平衡二叉树 8.4.1 平衡二叉树的定义 8.4.2 AVL树中插入的不平衡类型及调整方法 8.5 B树与B+树 8.5.1 B树及B树的查找 8.5.2 B树的插入与删除 8.5.3 B+树简介 8.6 散列及散列表的动态查找 8.6.1 散列的概念 8.6.2 常用散列函数的构造方法 8.6.3 冲突的处理 8.6.4 散列表上的操作算法 如图给出一棵3阶B+树。在B+树上可通过指针spt对关键字进行顺序查找,也可从根结点开始 做随机查找。无论查找成 功与否,都须经从根结点 到叶结点的整条路径。 m阶B+树中,除根结点外的结点里关键字个数n的取值范围是「m/2 ≤n≤m,根结点里关键字个数的取值范围是1≤n≤m;m阶B树中,除根结点外的结点里的关键字个数n的取值范围是「m/2 -1≤n≤m-1,根结点里关键字个数的取值范围是1≤n≤m-1。 m阶B+树中,结点里子树的个数与关键字的个数相同,即每个关键字对应于一棵子树;在m阶B树中,结点里子树的个数要比关键字数大1。 . B+树是B树的一种变形,被广泛地应用于文件系统的索引文件组织中。B+树的结构与B树大致相同,下面是m阶B+树与m阶B树在定义上的不同点。 m阶B+树中,全部关键字及相应记录的指针都出现在叶子结点,各叶子结点按关键字大小顺序依次链接;m阶B树中,出现在非叶子结 点里的关键字,不能出现在叶子结点里,即结点里的 关键字是不重复的。 (1) (2) (3) m阶B+树中,所有非叶子结点里只有下属子树的最大关键字和指向该子树的指针,没有关键字对应记录的指针,只起索引的作用;m阶B树中,非叶子结点里除关键字和指向子树的指针外,还有关键字对应记录的指针。 (4) 10 15 21 37 44 51 59 63 72 85 91 97 sqt 15 44 59 72 97 59 97 root 数据记录 . 把关键字代入散列函数h,它们在散列表的地址索引如下: 记录关键字为:25,6,1,20,22,27,10,13,41,15,18。散列函数为:h(key)=key % 11,用它将11个键值存放到如图(a)所示的大小为11的散列表里。 1. 前面介绍的静态或动态查找方法,都是基于记录关键字的比较展开,查找的效率都取决于查找过程中所进行的关键字比较次数,也就是与查找表的长度紧密相关。 散列的基本思想 . . 理想的做法是不(或很少)做比较,而是通过某个函数,利用关键字算出记录应在查找表的存储地址。这样,插入或查找数据所需时间都只是一个计算过程,与表中元素的个数(即表长)无关,从而提高了效率。这就是“散列”的基本思想。 . 在散列时使用的函数,称为“散列函数”,也称为“哈希函数”。这时的查找表,被称为“散列表”或“哈希表”。 例8-12: 解: 0 1 2 3 4 5 6 7 8 9 22 0 1 1 13 2 25 3 15 4 27 5 6 6 18 7 41 8 20 9 10 索引: key: 索引表 (a) (b) h(25)=25 % 11=3,h(6)=6 % 11=6, h(1)=1 % 11=1, h(20)=20 % 11=9,h(22)=22 % 11=0,h(27)=27 % 11=5, h(10)=10 % 11=10, h(13)=13 % 11=2, h(41)=41 % 11=8, h(15)=15 % 11=4, h(18)=18 % 11=7 于是,存储后的散列表如图(b)所示。 10 10 给出9个记录的关键字:47,7,11,16,29,92,22,8,3。散列函数为:h(key)=key % 11,散列表长为11。试建立对应的散列表。 2. 散列的几个概念 例8-13: 解:

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档