1、树与二叉树的对应关系
-
二叉树可以用二叉链表作为存储结构;
树也可以使用二叉链表作为存储结构。
一棵树和一个二叉树由此建立对应关系
如下,
-
任意一颗和
树
对应的二叉树
,其右结点必定为空(因为树的根结点是没有兄弟结点的,其二叉链表根节点的右链域必为空)。
2、森林和二叉树的对应关系
-
方法:
把森林中的第二棵树的根结点
、第三棵树的根结点
… 都看作是第一棵树的根结点
的兄弟结点。
因此顺着第一棵树的根结点
右链域依次排下去 -
一个实例如下图
3、森林或数 <----> 二叉树 (相互转化)
- 森林转换成二叉树( F2B )
已知森林F
= { T1 , T2 , … , Tm } ,B
= { ROOT,LB,RB }
a. 若F
为空,则m
= 0 ,B
为空树。
b. 若F
非空 ,则m
不为0
,B的根root即为F
中 T1 的根结点 ROOT(T1);B的左子树 LB 是从 T1 根结点的子树森林F1 = { T11 , T12 , … , T1m } 转换而成的二叉树;B的右子树 RB 是从森林 F ’ = { T2 , T3, … , Tm } 转换而成的二叉树。 - 二叉树转换成森林( B2F )
已知B
= { ROOT,LB,RB },森林F
= { T1 , T2 , … , Tm }
a. 若B
为空,那么F
为空
b.若B
非空,则 F 中第一棵树 T1 的根 ROOT(T1) 即为二叉树 B 的根 root;T1 的子树森林 F1 是由LB
转化而来;而 T2,T3,… ,Tm 组成的森林是由RB
转换而来。