树、森林与二叉树的转换

树或森林与二叉树之间有一个自然的一一对应关系。任何一个森林或一棵树可惟一地对应到一棵二叉树;反之,任何一棵二叉树也能惟一地对应到一个森林或一棵树。

树、森林与二叉树的转换

工具/原料

    一棵树,二叉树,或者森林

方法/步骤

    1

    将树转换为二叉树:

    树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树:1.在所有兄弟结点之间加一连线2.对每个结点,除了保留与其长子的连线外,去掉该结点与其它孩子的连线。

    如下图所示:

    树、森林与二叉树的转换

    2

    将一个森林转换为二叉树:

    具体方法是:1.将森林中的每棵树变为二叉树;2.因为转换所得的二叉树的根结点的右子树均为空,故可将各二叉树的根结点视为兄弟从左至右连在一起,就形成了一棵二叉树。

    如下图所示:

    树、森林与二叉树的转换

    3

    二叉树转换为树:

    是树转换为二叉树的逆过程。

    1.加线。若某结点X的左孩子结点存在,则将这个左孩子的右孩子结点、右孩子的右孩子结点、右孩子的右孩子的右孩子结点…,都作为结点X的孩子。将结点X与这些右孩子结点用线连接起来。

    2.去线。删除原二叉树中所有结点与其右孩子结点的连线。

    如下图所示:

    树、森林与二叉树的转换

    4

    二叉树转换为森林:

    假如一棵二叉树的根节点有右孩子,则这棵二叉树能够转换为森林,否则将转换为一棵树。

    1.从根节点开始,若右孩子存在,则把与右孩子结点的连线删除。再查看分离后的二叉树,若其根节点的右孩子存在,则连线删除…。直到所有这些根节点与右孩子的连线都删除为止。

    2.将每棵分离后的二叉树转换为树。

    如下图所示:

    树、森林与二叉树的转换

    5

    树和二叉树是两种不同的数据结构,树实现起来比较麻烦,但是树可以转换为二叉树进行处理,处理完以后再从二叉树还原为树。

    树、森林与二叉树的转换END

注意事项

    树和二叉树是两种不同的数据结构,树实现起来比较麻烦,但是树可以转换为二叉树进行处理,处理完以后再从二叉树还原为树。

温馨提示:经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
免责声明:本文转载来之互联网,不代表本网站的观点和立场。如果你觉得好欢迎分享此网址给你的朋友。
转载请注明出处:https://www.baikejingyan.net/af06bVwdsBwRZAg.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年07月13日
下一篇 2023年07月15日
single-end

热门经验

single-end

相关经验

  • 怎样做笔记呢

    怎样做笔记呢,这里总结了我做笔记的一些经验和方法。如果是学生,或觉得有手写笔记的需要,那么无论是为了课堂记录还是课后复习,这篇文章都给你参考一下。...

    2024年11月16日
    0℃
  • 科目二考试心里紧张怎么办

    科目二考试心里紧张怎么办,很多朋友科目二考试都是败在心里比较紧张,平时练习的很好,但是考试的时候那些技巧一紧张都被忘记了,那么考试的时候怎样才能平复紧张的情绪是自己顺利通关呢,下面小编给您几点建议,希望可以帮到您...

    2024年07月04日
    0℃
  • 非常适合练习英语口语的10部美剧

    非常适合练习英语口语的10部美剧,练习纯正的美式英语就应该多听多看纯正的美剧,记得记下来来看美剧哦!...

    2024年07月04日
    0℃
  • 怎样看电影学英语

    怎样看电影学英语,有许多身边的朋友和网上的朋友看过了许多的英文大片,可是英文水平却未见大的长进,看没有字幕的影片仍是一头雾水,因而怀疑自己学习英语的天分。现在我结合自己以前的学习和现在的教学经验:...

    2024年06月28日
    0℃
  • 一级注册消防工程师零基础入门及通关学习方法

    一级注册消防工程师零基础入门及通关学习方法,当前众多上班族工作之外有一个好的副业无疑是一个减轻生活压力,迈上人生巅峰的好方法,而一级注册消防工程师证书是当下火的不能再火的副业首选,消防工程师证书的挂靠收入缓解了很多上班族的压力,毕竟每年7、8w的消防收入还是很有吸引力的。而怎样在上班之余取得消防工程师证书呢?下面咱们来一起探讨学习下:...

    2024年06月27日
    0℃

联系我们

在线咨询: QQ交谈

邮件:baikejingyan@gmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信