课程:树和二叉树.pptVIP

  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文档。上传文档
查看更多
课程:树和二叉树

三叉链表的结点结构 整体结构 增设一个头结点,令其lchild指向二叉树的根结点,ltag=0、rtag=1; 并将该结点作为遍历访问的第一个结点的前驱和最后一个结点的后继; 最后用头指针指示该头结点。  6.5.2 哈夫曼编码  6.5.2 哈夫曼编码 6.4.2 树、森林与二叉树的相互转换 1. 树转换为二叉树 我们约定树中每一个结点的孩子结点按从左到右的次序顺序编号,也就是说,把树作为有序树看待。 例如:右图的树 A B E C D F G H 将一棵树转换为二叉树的方法: ⑴ 树中所有相邻兄弟之间加一条连线。 ⑵ 对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。 ⑶ 以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。 A F H E G C B D A F H E G C B D A F H E G C B D 结论:从转换过程可看出:树中的任意一个结点都对应于二叉树中的一个结点。树中某结点的第一个孩子在二叉树中是相应结点的左孩子,树中某结点的右兄弟结点在二叉树中是相应结点的右孩子。由于树的根结点没有兄弟,所以变换后的二叉树的根结点的右孩子必然为空。 2. 森林转换为二叉树 森林转换为二叉树的方法为: (1)将森林中的每棵树转换成相应的二叉树。 (2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。 C A B D F E G I J H (a) 森林 A B C D E F G H I J (b) 森林中每棵树对应的二叉树 (c)森林对应的二叉树 A D B C E F G H I J 森林转换为二叉树的过程 将森林F看作树的有序集F={T1,T2,…,TN},它对应的二叉树为B(F):则有: (1)若N=0,则B(F)为空。 (2)若N0,二叉树B(F)的根为森林中第一棵树T1的根; B(F)的左子树为B({T11,…,T1m}),其中{T11,…,T1m}是T1的子树森林;B(F)的右子树是B({T2,…,TN})。 。 用递归的方法描述上述转换过程: 如图: F={T1 ,T2, T3} D B C A BT1 F E BT2 B C F E J H A D I G T1 T3 T2 BT3 H J I G J I F E B D A H G C 方法:根及左子树转换成第一棵树,其余部分依次类推…… 提问? 该二叉树是由几棵树转换而来的? 具体分析…… A E B C D F G H I J 3. 二叉树还原为树或森林 一棵二叉树还原为树或森林,具体方法为: (1)若某结点是其双亲的左孩子,则把该结点的右孩子、右孩子的右孩子、……都与该结点的双亲结点用线连起来。 (2)删掉原二叉树中所有双亲结点与右孩子结点的连线。 (3)整理由(1)、(2)两步所得到的树或森林,使之结构层次分明。 D A B C E F G H I J H I J G D A B C E F G H I J C A B D F E 演示 用递归的方法描述其转换过程为: 若B是一棵二叉树,T是B的根结点,L是B的左子树,R为B的右子树,且B对应的森林F(B)中含有的n棵树为T1,T2, …,Tn,则有: (1)B为空,则F(B)为空的森林(n=0)。 (2)B非空,则F(B)中第一棵树T1的根为二叉树B的根T;T1中根结点的子树森林由B的左子树L转换而成,即F(L)={T11,…,T1m};B的右子树R转换为F(B)中其余树组成的森林,即F(R)={ T2, T3, …,Tn}。 2、画出和下列树相对应的二叉树。 1 2 5 4 3 7 6 8 3、画出和下列森林相对应的二叉树。 12 14 13 15 9 10 11 1 2 4 3 5 7 6 8 T1 T2 T3 T4 6.4.3 树与森林的遍历 1. 树的遍历 树的遍历方法主要有以下两种: (1)先根遍历 若树非空,则遍历方法为: ①访问根结点。 ②从左到右,依次先根遍历根结点的每一棵子树。 A B E C D F G H 如图中树的先根遍历序列为:ABECFHGD。 (2)后根遍历 若树非空,则遍历方法为: ①从左到右,依次后根遍历根结点的每一棵子树。 ②访问根结点。 如图中树的后根遍历序列为:EBHFGCDA。 树的

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档