首页 > 技术文章 > 树、森林、二叉树之间的相互转换

meihao1203 2018-06-25 16:53 原文

树转换为二叉树
  1、加线。所有兄弟之间加一条线
  2、去线。对树中每个结点,只保留它与第一个孩子结点的连线,删除它与其他孩子结点之间的连线
  3、层次调整。以树的根结点为轴心,整棵树顺时针45度
森林转换二叉树
  1、每棵树转换为二叉树
  2、每一棵二叉树不动,从第二棵开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点的右孩子
二叉树转换为树
  1、加线
  2、去线
  3、层次调整
二叉树转换为森林
  1、根结点出发,若右孩子存在,则把与右孩子结点的连线删除,对分离后的二叉树才用相同的操作,直到没有右孩子。
  2、分离的每棵树转换为二叉树即可。
树和森林的遍历
  树的遍历:
    1、先根遍历,先访问根结点,再依次遍历根的每一棵子树。
    2、后根遍历,先依次后根遍历每课子树,然后再访问根根结点。
  先根遍历:ABEFCDG  后根遍历:EFBCGDA
森林的遍历:
    1、前序遍历,ABCDEFGHJI
    2、后序遍历,BCDAFEJHIG

推荐阅读