1 说明:树、森林与二叉树之间有一个自然的对应关系,它们之间可以进行相互转换,即任何一个森林或一棵树都可以唯一对应一棵二叉树,而任一棵二叉树也能唯一对应一个森林或一棵树。
2 森林、树转换为二叉树步骤:
森林转二叉树过程
(1)在所有相邻兄弟节点(森林中每棵树的根节点可看成是兄弟节点)之间加一条水平连线。
(2)对每个非叶子节点k,除了最左边的孩子节点外,删去k与其它孩子节点的连线。
(3)所有水平线段以左边节点为轴心顺时针旋转45度。
特别的:一棵树是森林中的特殊情况,由一棵树转换的二叉树的根节点的右孩子节点始终为空,原因是一棵的根节点不存在兄弟节点和相邻的树。
3 二叉树还原为树、森林的步骤:
二叉树转一般的树
(1)对于一棵二叉树中任一节点k1,沿着k1右孩子节点的右子树方向搜索所有右孩子节点,即搜索节点序列k2,k3,...,km,其中ki+1为ki的右孩子节点(1≤i<m),km没有右孩子节点。
(2)删去k1,k2,...,km之间的连线。
(3)若k1有双亲节点k,则连接k与ki(2≤i≤m)。
(4)将图形规整化,使各节点按层次排列。