普通树转二叉树
- 在所有兄弟之间加一条线
- 对数中每个结点,只保留与第一个孩子的结点连线,消去其他孩子连线
- 将树的结构层次分明

森林转换二叉树
- 现将森林中每颗树转换成二叉树
- 再将各二叉树的根节点视为兄弟从左到右连在一起,就形成了大二叉树

二叉树转换到树,森林
- 若结点 x 是双亲 y 的左孩子,则把 x 的右孩子,右孩子的右孩子,...,都消去原双亲连线并与 y 相连作为新的双亲连线
- 整理每棵树,则可得到树/森林;
注:普通树转二叉树时,原来的子结点在这个结点的左子树,兄弟结点在右子树;转化后的根节点没有右子树,说明他原本是普通树,否者他原本是森林
树与森林的遍历
树
先根遍历:先访问树的根节点,然后再从左到右的先根遍历根的每颗子树
后跟遍历:先从左到右后跟遍历每颗子树,然后再访问根节点
森林
前序、后序(按照树的先根和后跟遍历依次访问森林的每颗树)
结论:树、森林的先根遍历和二叉树的前序遍历结果相同;树、森林的后根遍历和二叉树的中序遍历结果相同;
浙公网安备 33010602011771号