数据结构教学课件完整版电子教案.ppt

  1. 1、本文档共572页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件PPT完整版课件全套课件整套课件全书课件全册课件完整版PPT全套PPT整套PPT全书PPT教学课件教学PPT课件汇总PPT汇总完整版电子教案全册电子教案全书电子教案教学教程幻灯片

设在插入结点的过程中,使二叉树失去平衡的最小不平衡子树的根结点为a点,则可依据插入结点位置的不同情形一般有以下四种: (1)LL型平衡旋转 在结点a的左孩子的左子树上插入结点,使一棵二叉树上结点a的平衡因子由1增至2而失去平衡,此时须进行一次顺时针旋转操作。如图8.13所示。 (2)RR型平衡旋转 由于在a的右孩子的右子树上插入新结点,使a的平衡因子由-1增到-2而失去平衡。此时应以b为轴心作逆时针旋转,使结点a作为结点b的左孩子,如图8.14所示。 (3)LR型平衡旋转 在结点a的左孩子的右子树上插入新结点c,使a的平衡因子由1增到2而失去平衡。此时需进行两次旋转。首先以新结点c为轴心作逆时针旋转,使得结点a的左孩子变为新结点c的左孩子,然后再以新结点c为轴心作顺时针旋转,使得结点a变为新结点c的右孩子。如图8.15所示。 (4)RL型平衡旋转 由于在a的右孩子的左子树中插入新结点c,使a的平衡因子由-1增到-2而失去平衡。此时首先应以新结点c为轴心作顺时针旋转,使得结点a右孩子变为新结点c的右孩子,然后再以新结点c为轴心作逆时针旋转,使得结点a变为新结点c的左孩子,如图8.16所示。 例如,对关键字序列{9,3,6,8,7,10}建立一棵平衡二叉检索树,其过程如图8.17所示。结点旁的数字是该结点的平衡因子。 索引文件的树型索引表结构通常采用B树结构。B树又包含B-树和B+树两种,它们都是一种适用于外检索的树型结构,是一种平衡的多路检索树。 8.4.1 B-树 1、 B-树的定义 一棵m阶的B-树是一种平衡的多路检索树,它或者是一棵空树,或者是一棵满足下列特性的m叉树: (1)树中每个结点至多有m棵子树; (2)除非根结点为叶子结点,否则它至少有两棵子树; (3)除根结点之外的所有非终端结点至少有 棵子树; (4)所有的叶子结点均保持在同一层上,且不包含任何信息; 8.4 B树 (5)所有的非终端结点中包含有下列信息: (n,A0,K1,A1,K2,A2,…,Kn,An) 其中,K1,K2,…,Kn为n个按从小到大顺序排列的关键字,A0,A1,A2,…An为n+1个指向子树根结点的指针,用于指向该结点的n+1个子树或孩子,其中A0所指向孩子中的所有关键字均小于K1,…,An所指向孩子中的所有关键字均大于Kn,Ai(0≤i≤n)所指向孩子中的所有关键字均小于Ki+1,但大于Ki。 例如,图8.18为一棵由11个关键字生成的3阶B-树的示意图。 2、B-树的检索 在B-树上进行检索的过程类似于二叉检索树,都是走了一条从树根结点到待检索关键字所在结点的检索路径,不过通常需要经过同多个关键字比较后才能确定一个结点。需要先在B-树中检索结点,而后在结点中检索关键字,从而判断是否检索成功或失败。检索B-树所需比较的结点要比在二叉检索树上检索所需比较的结点数要少得多。 例如,对于图8.18,若要检索关键字值等于70的结点,其具体过程为:由于树不空,首先从根结点开始,找到结点a,由于a中只有一个关键字,且给定值7050,所以由指针A1可找到结点c,该结点有两个关键字(55和80),由于557080,若待检索关键字70存在,则必在c结点中指针A1所指的子树中,然后由指针A1找到结点g,在结点g中顺序检索,可检索到关键字70,此时检索成功。 3、B-树结点的插入 在B-树上插入一个数据元素首先要检索出关键字的正确插入位置,然后再进行插入。在B-树中插入新元素不是添加新的叶子结点,而是需要先判断该结点是否已有m-1个键字,若不是m-1个关键字,则按关键字(设为k)的大小有序地插入到适当的位置,否则,由于结点的关键字个数为m,超过了结点所规定的范围,需要进行结点的“分裂”。 例如,对一组关键字(25,80,40,45,56,75,85,20),从3阶的空的B-树开始,依次插入关键字。其具体过程如图8.19(a)到(k)图。 4、B-树结点的删除 要在B-树上删除一个关键字,则首先

文档评论(0)

187****8936 + 关注
实名认证
内容提供者

答案 课件 教案 试卷 最新精品整理

1亿VIP精品文档

相关文档