- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
何谓查找表 ?.ppt
※ 每个非叶结点中的关键字 Ki 即为其相应指针 Ai 所指子树中关键字的最大值; ※ 所有叶子结点都处在同一层次上,每个叶子结点中关键字的个数均介于 ?m/2?和 m 之间。 2.查找过程 ※在 B+ 树上,既可以进行缩小范围的查 找,也可以进行顺序查找; ※ 在进行缩小范围的查找时,不管成功 与否,都必须查到叶子结点才能结束; ※若在结点内查找时,给定值≤Ki, 则 应继续在 Ai 所指子树中进行查找。 3.插入和删除的操作 类似于B-树进行,即必要时,也需要进行结点的“分裂”或“归并”。 50 96 15 50 62 78 96 71 78 84 89 96 56 62 20 26 43 50 3 8 15 sq root 键 树 1. 键树的结构特点 2. .双链树 3. Trie树 1. 键树的结构特点: ※ 关键字中的各个符号分布在从根结点到叶的路径上,叶结点内的符号为“结束”的标志符。因此,键树的深度和关键字集合的大小无关; ※ 键树被约定为是一棵有序树,即同一层中兄弟结点之间依所含符号自左至右有序,并约定结束符‘$’小于任何其它符号。 H A D $ S $ V E $ E $ R $ E $ I G H $ S $ 例如: 表示关键字集合 {HAD, HAS, HAVE, HE, HER, HERE, HIGH, HIS } 2. 双链树 — 以二叉链表作存储结构实现的键树 typedef enum { LEAF, BRANCH }NodeKind; // 两种结点:{叶子 和 分支} 结点结构: first symbol next 分支结点 infoptr symbol next 叶子结点 指向孩子结点 的指针 指向兄弟结点 的指针 指向记录 的指针 ? H ? A D $ HAD E $ R $ $ E S $ G H $ I ? ? ? ? ? ? ? ? HE HER HERE HIGH HIS … T ? 叶子结点 分支结点 含关键字 的记录 由关键字序列 3,1,2,5,4构造而得的二叉排序树, 由关键字序列 1,2,3,4,5构造而得的二叉排序树, 例如: 2 1 3 4 5 3 5 4 1 2 ASL =(1+2+3+4+5)/ 5 = 3 ASL =(1+2+3+2+3)/ 5 = 2.2 下面讨论平均情况: 不失一般性,假设长度为 n 的序列中有 k 个关键字小于第一个关键字,则必有 n-k-1 个关键字大于第一个关键字,由它构造的二叉排序树: n-k-1 k 的平均查找长度是 n 和 k 的函数 P(n, k) ( 0? k ? n-1 )。 假设 n 个关键字可能出现的 n! 种排列的可能性相同,则含 n 个关键字的二叉排序树的平均查找长度: 在等概率查找的情况下, 由此 可类似于解差分方程,此递归方程有解: 二叉平衡树 何谓“二叉平衡树”? 二叉平衡树的查找性能分析 如何构造“二叉平衡树” 二叉平衡树是二叉查找树的另一种形式,其特点为: 树中每个结点的左、右子树深度之差的绝对值不大于1 。 例如: 5 4 8 2 5 4 8 2 1 是平衡树 不是平衡树 构造二叉平衡(查找)树的方法是: 在插入过程中,采用平衡旋转技术。 例如:依次插入的关键字为5, 4, 2, 8, 6, 9 5 4 2 4 2 5 8 6 6 5 8 4 2 向右旋转 一次 先向右旋转 再向左旋转 4 2 6 5 8 9 6 4 2 8 9 5 向左旋转一次 继续插入关键字 9 在平衡树上进行查找的过程和二叉排序树相同,因此,查找过程中和给定值进行比较的关键字的个数不超过平衡 树的深度。 平衡树的查找性能分析: 问:含 n 个关键字的二叉平衡树可能达到的最大深度是多少? n = 0 空树 最大深度为 0 n = 1 最大深度为 1 n = 2 最大深度为 2 n = 4 最大深度为 3 n = 7 最大深度为 4 先看几个具体情况: 反过来问,深度为 h 的二叉平衡树中所含结点的最小值 Nh 是多少? h = 0 N0 = 0 h = 1 h = 2 h = 3 一般情况下 N1 = 1 N2 = 2 N3 = 4 Nh = Nh-1 + Nh-2 + 1 利用归纳法可证得 Nh = Fh+2 - 1 因此,在二叉平衡树上进行查找时, 查找过程中和给定值进行比较的关键字的个数和 l
文档评论(0)