线索二叉树
- 我们将已经定义好的结构进行“扩容”

ltag为0时指向该结点的左孩子,为1时指向该结点的前驱。
rtag为0时指向该结点的右孩子,为1时指向该结点的后继。
- 线索二叉树结构如图:
树到二叉树的转换
- 树转换成相应的二叉树分两个步骤:
1 在树中所有的兄弟结点之间加一连线
2 对每个结点,除了保留与其长子的连线外,去掉该结点与其他孩子的连线


森林到二叉树的转化
- 森林转换为二叉树分两个步骤:
1 先将森林中的每棵树变为二叉树
2 再将各二叉树的根结点视为兄弟从左至右连在一起,就形成了一棵二叉树



二叉树到树、森林的转换



树与森林的遍历
- 树的遍历分为两种方式:一种是先根遍历,另种是后根遍历。
先根遍历:先访问树的根结点,然后再依次先根遍历根的每棵子树。
后根遍历:先依次遍历每棵子树,然后再访问根结点。
-

先根遍历结果: ABEFCGDHIJ 后根遍历结果: EFBGCHIJDA
- 森林的遍历也分为前序遍历和后序遍历,其实就是按照树的先根遍历和后根遍历依次访问森林的每一棵树。
- 我们的惊人发现:树、森林的前根(序)遍历和二又树的前序遍历结果相同,树、森林的后根(序)遍历和二叉树的中序遍历结果相同!
相关文章: