树是一种数据结构,而二叉树是树的最重要的一种。所有的树都可以找到一棵为一对应的二叉树。而从物理储存结构来说,它们的二叉链表是相同的,只是解释的角度不同。
一、森林转换为树
如果F={T1,T2,...,Tn}是森林,按如下的规则转换为一棵二叉树B={root,LB,RB}。
(1)若F为空,即m=0,则B为空树。
(2)若F非空,即m≠0,则B的根root即为森林的第一棵树的根ROOT(T1);B的左子树LB是从T1中根节点的子森林F1={T11,T12,...,T1m1}转换而成的二叉树;其右子树RB是从森林F'={T2,T3,...,Tm}转换而成的二叉树。
二、二叉树转换为森林
如果B=(root,LB,RB)是一棵二叉树,则可按下规则转换为森林
(1) 若B为空,则F为空
(2) 若B为非空,则F中第一棵树T1的根ROOT(T1)即为二叉树根root;T1中的根节点的子森林F1是由B的左子树LB转换为森林;F中除了T1之外其余的树组成的森林F'={T2,T3,...,Tm}是由B的右子树RB转换而成的森林。
一、森林转换为树
如果F={T1,T2,...,Tn}是森林,按如下的规则转换为一棵二叉树B={root,LB,RB}。
(1)若F为空,即m=0,则B为空树。
(2)若F非空,即m≠0,则B的根root即为森林的第一棵树的根ROOT(T1);B的左子树LB是从T1中根节点的子森林F1={T11,T12,...,T1m1}转换而成的二叉树;其右子树RB是从森林F'={T2,T3,...,Tm}转换而成的二叉树。
二、二叉树转换为森林
如果B=(root,LB,RB)是一棵二叉树,则可按下规则转换为森林
(1) 若B为空,则F为空
(2) 若B为非空,则F中第一棵树T1的根ROOT(T1)即为二叉树根root;T1中的根节点的子森林F1是由B的左子树LB转换为森林;F中除了T1之外其余的树组成的森林F'={T2,T3,...,Tm}是由B的右子树RB转换而成的森林。
博客介绍了树和二叉树这两种数据结构,指出所有树都能找到对应的二叉树,二者二叉链表相同但解释角度不同。还详细阐述了森林与二叉树的相互转换规则,包括森林转换为二叉树以及二叉树转换为森林的具体步骤。
15万+

被折叠的 条评论
为什么被折叠?



