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

转载 2016年08月30日 18:12:12

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

 

树转换为二叉树

1. 加线

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

2. 去线

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

3. 层次调整

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

森林转换为二叉树

1. 把每棵树转换为二叉树。

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

二叉树转换为树

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

1. 加线

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

2. 去线

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

3. 层次调整。

二叉树转换为森林

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

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

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

 

相关文章推荐

二叉树和森林之间的转换

  • 2017年03月29日 21:17
  • 4.45MB
  • 下载

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

1.树->二叉树 树和二叉树是互相唯一对应的,转换步骤如下: (1)连接所有兄弟结点 (2)保留第一个兄弟结点与父节点的连接,断开其他兄弟结点与父节点的连接 (3)以根结点为轴...

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

对于一般树,树中孩子的次序并不重要,只要双亲与孩子的关系正确即可。但在二叉树中,左、右孩子的次序是严格区分的。所以在讨论二叉树与一般树之间的转换时,为了不引起混淆,约定按树上现有结点次序进行转换。这里...

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

树转换为二叉树 1. 加线      在所有兄弟结点之间加一条连线。 2. 去线      树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。 ...

Java基础 - 多叉树、森林和二叉树之间的转换

/** * @author wb * * 森林、树和二叉树之间的转换 * 有序树、森林和二叉树之间有一一映射的关系,可以相互转换。 * 多叉树向二叉树转换的方法如下: * (1)加虚线:同...

二叉树与树、森林转换

  • 2012年04月05日 16:17
  • 156KB
  • 下载

森林转换成二叉树

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

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

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

树、森林与二叉树的转换

  • 2009年03月07日 18:21
  • 109KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:树、森林和二叉树之间的转换
举报原因:
原因补充:

(最多只允许输入30个字)