1.树转换为二叉树
上图是一个度为3的树的结构 ,转换为二叉树分为加线、抹线和旋转几个过程:
①加线:在所有兄弟节点间加一条线
②抹线:只保留他与第一个孩子结点间的连线,删除它与其它孩子结点间的连线
③旋转:以树的根节点为轴心,将整棵树顺时针旋转一定角度使结构层次分明
2.森林转换为二叉树
森林是由若干棵树组成的,可以将森林中每根树的根节点看作是兄弟节点,由于每棵树都可转换为二叉树,故森林也可转换为二叉树。下图是一个森林:
①把每棵树转换为二叉树
②第一棵二叉树不动,从第二棵二叉树开始依次把后一棵二叉树的根节点作为前一刻二叉树的根节点的右孩子结点,用线连接起来,当所有的二叉树连接起来后得到的二叉树就是由森林转换得到的二叉树。
3.将二叉树转换为树
实质上就是树转换为二叉树的逆过程,下图为一个二叉树:
①若某结点的左孩子结点存在,那么就将左孩子结点的右孩子节点、右孩子结点的右孩子节点等作为该节点的孩子结点,并用线链接起来。
②删除原二叉树中所有结点与其右孩子结点的连线。
4.二叉树转换为森林
①从根节点开始,若右孩子存在,则把右孩子结点的连线删除,直到所有这些根节点与右孩子的连线删除为止
②把分离后的二叉树转换为树