树,叉树,森林的转化.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树,叉树,森林的转化

对于一般树,树中孩子的次序并不重要,只要双亲与孩子的关系正确即可。但在二叉树中,左、右孩子的次序是严格区分的。所以在讨论二叉树与一般树之间的转换时,为了不引起混淆,约定按树上现有结点次序进行转换。这里研究二叉树与一般树之间的转换,可以了解两者之间的内在本质联系,同时在研究解决一般树的问题时,有时可以将其转换为二叉树问题来解决。 树或森林与二叉树之间有一个自然的一一对应关系。任何一个森林或一棵树可唯一地对应到一棵二叉树。反之,任何一棵二叉树也能唯一地对应到一个森林或一棵树。 树、森林到二叉树的转换 1)将树转换为二叉树 树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树。 将一般树转化为二叉树的思路,主要根据树的孩子-兄弟存储方式而来,步骤是: 加线:在各兄弟结点之间用虚线相连。可理解为每个结点的兄弟指针指向它的一个兄弟。 抹线:对每个结点仅保留它与其最左一个孩子的连线,抹去该结点与其他孩子之间的连线。可理解为每个结点仅有一个孩子指针,让它指向自己的左孩子。 旋转:把虚线改为实线从水平方向向下旋转45,成右斜下方向。原树中实线成左斜下方向。这样就树的形状成呈现出一棵二叉树。 下图所示的树可转换为对应的二叉树。 2)将一个森林转换为二叉树 森林是树的有限集合。由上节可知,一棵树可以转换为二叉树(该二叉树没有右子树),一个森林就可以转换为二叉树(没有右子树)的森林。将森林转换为二叉树的一般步骤为: 将森林中每棵子树转换成相应的二叉树,形成由若干二叉树组成的森林。 ②按森林中原有树的先后次序,依次将后边一棵二叉树作为前边一棵二叉树根结点的右子树,这样整个森林就生成了一棵二叉树,实际上第一棵树的根结点便是生成后的二叉树的根结点。下图是将一个森林转化为一棵二叉树的示例 下图中,图a包含三棵树的森林可转换为图c的二叉树。 二叉树到树、森林的转换 1)二叉树转换为一般树 此时的二叉树必须是由某一树(一般树)转换而来的没有右子树的二叉树(若二叉树有右子树则说明此二叉树可以拆分成森林)。并非随便一棵二叉树都能还原成一般树。 其还原过程也分为三步: 加线:若某结点i是双亲结点的左孩子,则将该结点i的右孩子以及当且仅当连续地沿着右孩子的右链不断搜索到所有右孩子,都分别与结点i的双亲结点用虚线连接。 抹线:把原二叉树中所有双亲结点与其右孩子的连线抹去。这里的右孩子实质上是原一般树中结点的兄弟,抹去的连线是兄弟间的关系。 进行整理:把虚线改为实线,把结点按层次排列。 下图把二叉树还原为一般树: 2)二叉树转换为森林 将一棵二叉树转化成森林,可按如下步骤进行: 抹线:将二叉树根结点与其右孩子之间的连线,以及沿着此右孩子的右链连续不继搜索到的右孩子间的连线抹掉。这样就得到了若干棵根结点没有右子树的二叉树。 将得到的这些二叉树用前述方法分别转化成一般树。 整理第步得到的树,使之规范,这样得到森林。 总结 根据树与二叉树的转换关系以及二叉树的遍历定?义可以推知, a.树的先序遍历与其转换的相应的二?叉树的先序遍历的结果序列相同; b.树的后序遍历?与其转换的二叉树的中序遍历的结果序列相同;? c.树的层序遍历与其转换的二叉树的后序遍历的结?果序列相同。 由森林与二叉树的转换关系以及森?林与二叉树的遍历定义可知,按先根次序周游树(树林)与按前序周游对应的二叉树相同,按后根次序周游树(树林)与按对称序周游对应的二叉树相同。

文档评论(0)

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

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

1亿VIP精品文档

相关文档