数据结构期末复习(ご)--二叉树,树,森林之间的转换

由森林(F)转换为二叉树(B)的规则:

  设森林F有子树T1,T2,T3……;其中第一棵树比较特殊,单独拿出,T1分为root,t1,t2,t3,……

  设二叉树B为LBT,ROOT,RBT.

  •   ROOT(T1)作为B(ROOT)
  •   T1的子树(t1,t2,t3,……,tm)作为LBT
  •   其余的T2,T3,……,Tm作为RBT。

由二叉树转换为森林的规则:

  •   B(ROOT)作为T1(ROOT)
  •   LBT作为T1的子树(t1,t2,t3,……,tm)
  •   RBT作为其余的T2,T3,……,Tm

1.由树转换为二叉树:

  •   树中所有相邻兄弟之间加一条连线
  •    树中的每个节点,只保留其与第一个孩子节点之间的连线,删去其与其他孩子节点之间的连线
  •    以树根节点为轴心,将整棵树顺时针旋转一定角度,使其更直观

注意:和树对应的二叉树,其左,右子树的概念已经变为:左是孩子,右是兄弟。

 实例:

数据结构期末复习(ご)--二叉树,树,森林之间的转换_第1张图片

2.由森林转化为二叉树:

  •   将森林中的每棵树转换成相应的二叉树
  •   第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根节点作为前一棵二叉树根节点的右孩子,
  •        当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。

数据结构期末复习(ご)--二叉树,树,森林之间的转换_第2张图片

3.将二叉树转换为树或森林:

  •   若某节点是其双亲的左孩子,则把该节点的右孩子,右孩子的右孩子……都与该节点的双亲节点用线连起来
  •    删除原二叉树中所有双亲节点与右孩子节点的连线
  •    整理即可得到相应的树或森林

 

 数据结构期末复习(ご)--二叉树,树,森林之间的转换_第3张图片

   

转载于:https://www.cnblogs.com/DSYR/p/9168374.html

你可能感兴趣的:(数据结构期末复习(ご)--二叉树,树,森林之间的转换)