普通树转换为二叉树:
(1)在树中所有的兄弟结点之间加一条线
(2)对每个结点,除了保留与其长子的连线外,去掉该结点与其他孩子的连线。
森林到二叉树的转换:
(1)先将森林中的每棵树变为二叉树
(2)将各二叉树的根结点视为兄弟从左至右连在一起,就形成了一颗二叉树。
二叉树到树、森林的转换
(1)若结点x是其双亲y的左孩子,则把x的右孩子,右孩子的右孩子,…,都与y用连线连起来。
(2)去掉所有双亲到右孩子之间的连线。
树的遍历:
按照某种方式访问树中的每个结点,且仅访问一次。
先根遍历、后根遍历、层次遍历
先根遍历:若树非空,则先访问根结点,再按从左到右的顺序遍历根节点的每棵子树。
后根遍历:若树非空,则先按从左到右的顺序遍历根节点的每棵子树,再访问根结点。
树的先根遍历序列与这棵树对应二叉树的先序遍历序列相同。
森林的遍历:
分为前序遍历与后序遍历,其实就是按照树的先根遍历和后根遍历依次访问森林的每一棵树。
通过发现,可以知道:
树、森林的前根(序)遍历和二叉树的前序遍历结果相同,树、森林的后根(序)遍历和二叉树的中序遍历结果相同。