树转换为二叉树
孩子兄弟表示法:
-
将同一节点的各个孩子用线串联起来
-
将每个结点的子树分支,从左往右,除了第一个以外全部删除
如何将一棵二叉树转化成树
-
将二叉树从上到下分层,并调节成水平方向。(分层方法:每遇到左孩子则为一层)
-
找到每一层的双亲结点,方法为它的上一层相连的那个结点就是双亲结点
-
将每一层结点和其双亲结点相连,同时删除该双亲结点各个孩子结点之间的联系。
森林:m(>=0)棵互不相交的树的集合
如何把森林转换成二叉树:
-
将森林中每棵树都转换成二叉树
-
将第二棵树作为第一棵树的根结点的右子树,将第三课树作为第二棵树的根结点的右子树,依次类推
把 二叉树转换成森林
反复断开二叉树根结点的右孩子的右子树指针,直达不存在根结点有右孩子的二叉树为止
树和森林的遍历:只有先序和后序
结论:树的先序遍历等于它对应二叉树的先序遍历,后序遍历等于它对应的二叉树的中序遍历!
森林的先序遍历:对森林中每棵树进行先序遍历
森林的后续遍历:对森林中每棵树进行后续遍历
结论:森林的先序遍历等于它对应二叉树的先序遍历,后序遍历等于它对应的二叉树的中序遍历!