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

将一棵转换成二叉树的过程如下:
(1)树中所有相邻兄弟之间加一条连线
(2)对树中的每个结点只保留与长子(即最左边的孩子结点)之间的连线,删除与其他孩子之间的连线。
(3)以树的根结点为轴心,将整棵树顺时针转动45°,使之结构层次分明。

例如:将下面的树转换成二叉树。 

 

        从中可以看到,一棵树T转换成二叉树BT后,BT中的左分支仍表示T中的孩子关系,但BT中的右分支却表示T中的兄弟关系。由于T的根结点没有兄弟,所以BT的根结点一定没有孩子结点。
        若要转换为二叉树的森林由两棵或两以上的树构成,将这样的森林转换为二叉树的过程如下:
(1)将森林中的每棵树转换成相应的二叉树。
(2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点右孩子结点,当所有二叉树连在一起后,此时得到的二叉树就是由森林转换得到的二叉树。
        实际上,当森林F由两棵或两棵以上的树{T_{1},T_{2},T_{3},……,T_{n}}构成时,所有这些树的根结点构成兄弟关系,所以森林F转换成一棵二叉树BT后,将第一棵树T_{1}的根结点作为BT的根结点t_{1},T_{2}的根结点作为t_{1}的右孩子结点T_{2}T_{3}的根结点作为t_{2}的右孩子结点t_{3},以此类推。 

 例如:将下面的森林转换成二叉树。

例:将下面的二叉树转换成树或森林。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值