1.树转换为二叉树
从物理结构上看,树的孩子兄弟表示法与二叉树的二叉链表表示法其实是相同的,因此对一个物理结构的不同解释就可以将一棵树转换为二叉树了。
树转换为二叉树的规则:“左孩子右兄弟”
1.每个结点的左指针指向它的第一个孩子;
2.右指针指向它在树中右边相邻的兄弟;
由于根节点没有兄弟,所以树转换为二叉树后没有右子树。
树转换为二叉树的画法:
1.兄弟结点连上线;
2.只保留每个结点与其第一个孩子的连线;
3.顺时针旋转45度。
2.森林转换为二叉树
由于树转换为二叉树后必没有右子树,所以将森林中的每棵树先转化为二叉树后,再将第二颗树转换为的二叉树作为第一棵树转换为的二叉树的右子树。
以此类推,就可以将森林转化为二叉树。
森林转换为二叉树的画法:
1.将森林中的每棵树转换为对应的二叉树;
2.每棵树的根可以视为兄弟,在每颗树的根之间连线;
3.以第一棵树的根为轴心顺时针旋转45度。
3.二叉树转换为森林
将二叉树的右链断开后,根结点及其左子树作为森林中的第一棵树;
重复上述步骤,即可将二叉树转换为森林;
二叉树转换为森林是唯一的。