一般树与二叉树的相互转换

来源:互联网 发布:淘宝名字大全霸气的 编辑:程序博客网 时间:2024/05/16 04:52

一般来说,直接对一般树做一些相关操作非常对不方便。因此,将一般树转换为二叉树,操作完成后逆转为一般树成为了大部分人对付一般树的方法。

一般树转换二叉树:

1)将每一个结点与他的兄弟结点之间连一条线。

2)对每一个双亲结点,只保留它与第一个子结点的连线,删除与其余结点的连线。

3)整理,左右摆齐。

    a                                                             a                                         a                                   a

    /  |  \                                                       /   |    \                                     /                                  /

   b  c  d                                                    b...c...d                                  b..c..d                         b

  /   /  \                          ->                         /    /  \              ->                    /   /                 ->        /   \

  e   f     g                                                  e   f....g                                  e  f..g                       e       c

       |                                                              |                                            |                                    /  \

       h                                                             h                                           h                                 f     d

                                                                                                                                                    /   \

                                                                                                                                                 h       g


               二叉树转换一般树(相反):

          1)若一个结点是其父结点的左结点,则将此结点的右结点,右结点的右结点。。。都与其父结点相连线。

 2)删除原二叉树所有父结点与右结点的连线。

                图示:

                 3)整理连线,统一高度。

                                     

原创粉丝点击