湘潭大学数据结构课件pptCh04Trees讲义.ppt

湘潭大学数据结构课件pptCh04Trees讲义.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§5 伸展树 k5 F k4 E k3 D k2 A k1 C B k5 F k4 E k1 k3 D C k2 B A k1 k2 B A k4 k5 F E k3 D C 伸展操作不仅将被访问结点移到根处,而且整体上将路径上大部分结点的深度减少了将近一半。 §5 伸展树 Insert: 1, 2, 3, 4, 5, 6, 7 7 1 6 5 4 3 2 7 6 5 4 1 3 2 Find: 1 7 6 1 4 5 3 2 1 6 7 4 5 3 2 一个32个结点的例子在 图 4.52 – 4.60 §5 伸展树 Deletions: ? 步骤 1: Find X ; X 将成为根。 ? 步骤 2: Remove X ; 将得到两棵子树 TL 和 TR . ? 步骤 3: FindMax ( TL ) ; 最大的元素将成为 TL 的根, 而且没有右子树。 ? 步骤 4: 将 TR 作为 TL 的根的右子树. 伸展树真的比 AVL 树好吗? ? 二叉查找树的其他操作 ? Sort: 将元素按升序排列输出。 Solution: 中序遍历 ? Get Height: 计算结点的高度。 Solution: 后序遍历 ? Get Depth: 计算结点的深度。 Solution: 前序遍历 §6 B-树 【定义】一棵 M 阶B-树 是一棵满足下列结构性质的树: (1) 根是一片叶子,或者有 2 到 M 个孩子。 (2) 所有的非叶子结点(除了根)都有 ?M/2? 到 M 个孩子。 (3) 所有的叶子结点都在同一深度。 可以认为每一个不是根的叶子节点也有 ?M/2? 到 M 个孩子。 12 15 25 31 41 59 84 91 1,4,8,11 12,13 15,18,19 21,24 25,26 31,38 41,43,46 48,49,50 59,68 72,78 84,88 91,92,99 21 48 72 4阶B-树 (2-3-4 tree) 所有的实际数据都存储在叶子结点上。 每个内部结点有M 个指针指向它的孩子。 以及 M ? 1 个子树中的最小键值(除了第一棵子树外)。 §6 B-树 3阶B-树 (2-3 tree) 8,11,12 16,17 22,23,31 41,52 58,59,61 16:? 41:58 22:? ? Find: 52 ? Insert: 18 16,17,18 ? Insert: 1 ? 11,12 22,23,31 41,52 58,59,61 11:16 41:58 22:? 16,17,18 1, 8 ? Insert: 19 ? 11,12 22,23,31 41,52 58,59,61 11:? 41:58 16:22 16,17 1, 8 18,19 18:? ? Insert: 28 §6 B-树 11,12 22,23 41,52 58,59,61 11:? 58:? 16:? 16,17 1, 8 18,19 18:? 28,31 28:? 22:? 41:? ? Insert: 70 首先找到一个具有2个 键值的兄弟结点进行调整。 使更多的结点保持满状态。 ? Deletion 和 insertion 是类似的,只是当根少于两个孩子时,将被移去。 §6 B-树 对一棵 M 阶的一般B-树 Btree Insert ( ElementType X, Btree T ) { Search from root to leaf for X and find the proper leaf node; Insert X; while ( this node has M+1 keys ) { split it into 2 nodes with ?(M+1)/2? and ?(M+1)/2 ? keys, respectively; if (this node is the root) create a new root with two children; check its parent; } } Depth(M, N) = O( ?log?M/2? N ? ) T = O(M) T(M, N) = O( (M/log M) log N ) TFind (M, N) = O( log N ) Note: 阶数M最好的选择是 3 或 4。 Review 第三、四章作业 第3章 3/10/17(a)/24/26 第4章 5/6/8/9/15/23/24/32/36 请于5月4日前上交作业,逾期算缺交一次。 数据结构和算法实验 时间:第8

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档