【数据结构基础篇】树和二叉树之间的转换

来源:互联网 发布:杭州小知科技 知乎 编辑:程序博客网 时间:2024/05/01 10:22

树和二叉树

       树和二叉树的区别在于:树中节点可以有零个、一个或者多个直接后继;二叉树中节点可以有零个、一个或者两个直接后继。

树转换成二叉树

       1、连接所有兄弟节点;

       2、保留左起第一个兄弟节点与父节点的连接,断开其他兄弟节点与父节点的连接;
       3、将左起第一个兄弟节点以父节点为轴做顺时针45旋转,其余兄弟节点依次以前面兄弟节点为轴做顺时针45旋转。

森林转换成二叉树

       1、将每棵树转换对应的二叉树
       2、将得到的每棵二叉树的根节点按照从左到右的顺序连接起来;
       3、将第一个二叉树后面的二叉树依次转换为前面二叉树的右子树。

二叉树转换为森林

       1、断开根节点和右孩子的连接;
       2、将左子树(含一开始二叉树的根节点)转换为相应的树(树转换为二叉树的逆过程)
       3、对右子树重复1-3,直到所有的右子树都已转换为树。
       下图即为一个二叉树转换为森林的过程

Thanks for your valuable time,happy life,good health,thanks again~
                                                                                                                         —joker
0 0
原创粉丝点击