1. 树=>二叉树
定义树中结点的第一个孩子结点为大孩子结点,右边紧邻的第一个兄弟节点为大兄弟结点。(从左到右排序,左大右小)
与树对应的二叉树的左孩子结点是它原树中的大孩子结点,右孩子结点是它在原树中的大兄弟结点。
2. 森林=>二叉树
把森林看成一棵树,森林中所有树的根结点看作彼此的兄弟结点。
然后按照树转化为二叉树的方法进行转换即可。
3. 二叉树=>树
如果二叉树根结点的右子树为空,则可以进行该转换。
将每个结点的右孩子(若有)变成其兄弟结点。
4. 二叉树=>森林
如果二叉树根结点的右子树非空,则可将该二叉树转换为森林。
从根结点出发,断开其与右孩子之间的连线,直到得到的所有二叉树的根结点均没有右子树。再将每一棵二叉树按照(3)的方法进行转换即可。