[数据结构]树、森林和二叉树的转换

128人阅读 评论(0) 收藏 举报
分类:

树转换为二叉树

(1)加线。在所有兄弟结点之间加一条连线。

(2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。

(3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子)
这里写图片描述

森林转换为二叉树

(1)把每棵树转换为二叉树。

(2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点的右孩子,用线连接起来。

这里写图片描述

二叉树转换为树

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

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

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

(3)层次调整。

这里写图片描述

二叉树转换为森林

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

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

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

这里写图片描述

Reference:

[1] 《大话数据结构》
转自:https://www.cnblogs.com/zhuyf87/archive/2012/11/04/2753950.html

查看评论

数据结构:树、森林和二叉树的转换

1、树转换为二叉树 (1)加线。在所有兄弟结点之间加一条连线。 (2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。 (3)层次调整。以树的根...
  • u010889616
  • u010889616
  • 2015-08-28 10:24:51
  • 1308

数据结构------树,森林及二叉树的转换方法

一、普通树转化为二叉树        (1)加线:在所有兄弟节点之间加一条连线             (2)去线:对树中的每个节点,只保留它与第一个节点的连线,删除它与其他孩子节点之间的连线...
  • u011459278
  • u011459278
  • 2014-03-24 23:08:49
  • 3488

树、森林及二叉树的相互转换 – 数据结构和算法50

树、森林及二叉树的相互转换   让编程改变世界 Change the world by program   树、森林及二叉树的相互转换   从一个屌丝逆袭...
  • Andy2016
  • Andy2016
  • 2015-11-19 14:30:22
  • 977

树、森林与二叉树的转换总结

前言:   在树这一块的数据结构中最重要的就是二叉树,但是对于我们大部分人来说二叉树的基础掌握还是ok的,但是有时候我们也会忽略了树于森林(本人就是忽略了),今天就在这里总结总结数、森林与二叉树的转换...
  • xin917480852
  • xin917480852
  • 2016-01-12 15:27:41
  • 1376

数据结构—树、森林与二叉树的转换(类C语言描述)

树或森林与二叉树之间有一个自然的一一对应关系。任何一个森林或一棵树可惟一地对应到一棵二叉树;反之,任何一棵二叉树也能惟一地对应到一个森林或一棵树。 1.树、森林到二叉树的转换 (1)将树转换为...
  • LittleYearYear
  • LittleYearYear
  • 2014-06-10 19:41:23
  • 1582

数据结构---树、二叉树、森林

1、基本术语: 度:有两种度“结点的度”与“树的度”。结点的度指的是一个结点子树的个数;树的度是指树中结点度的最大值。 叶子结点:指的是没有子树的结点。 层:树是有层次的,一般根结点为第0层。规定根结...
  • iamgaowei
  • iamgaowei
  • 2014-07-28 14:39:27
  • 3686

森林转换成二叉树

  • 2012年11月03日 20:28
  • 9KB
  • 下载

数据结构 - 树和森林表示与遍历

双亲表示法(顺序存储结构) 用一组连续的存储空间来存储树的结点,同时在每个结点中附加一个指示器(整数域) ,用以指示双亲结点的位置(下标值) 。数组元素及数组的类型定义如下: #define...
  • wangzi11322
  • wangzi11322
  • 2015-04-30 10:03:27
  • 2859

树、森林与二叉树相互转化原理图

1、树转换为二叉树 由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。 将树转换成二叉树的步骤是: (1)加线。就是在所有兄弟结点之间加一条...
  • sddxqlrjxr
  • sddxqlrjxr
  • 2016-04-07 11:52:46
  • 17810

树、森林和二叉树之间的转换

树、森林和二叉树之间的转换   树转换为二叉树 1. 加线      在所有兄弟结点之间加一条连线。 2. 去线      树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连...
  • iw1210
  • iw1210
  • 2015-04-08 14:33:53
  • 11887
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 257万+
    积分: 3万+
    排名: 133
    博客专栏
    最新评论
    文章存档