树,森林与二叉树的转换

1.树转换为二叉树

从物理结构上看,树的孩子兄弟表示法与二叉树的二叉链表表示法其实是相同的,因此对一个物理结构的不同解释就可以将一棵树转换为二叉树了。

 

树转换为二叉树的规则:“左孩子右兄弟”

1.每个结点的左指针指向它的第一个孩子;

2.右指针指向它在树中右边相邻的兄弟;

由于根节点没有兄弟,所以树转换为二叉树后没有右子树

树转换为二叉树的画法:

1.兄弟结点连上线;

2.只保留每个结点与其第一个孩子的连线;

3.顺时针旋转45度。

2.森林转换为二叉树

由于树转换为二叉树后必没有右子树,所以将森林中的每棵树先转化为二叉树后,再将第二颗树转换为的二叉树作为第一棵树转换为的二叉树的右子树。

以此类推,就可以将森林转化为二叉树。

森林转换为二叉树的画法:

1.将森林中的每棵树转换为对应的二叉树;

2.每棵树的根可以视为兄弟,在每颗树的根之间连线;

3.以第一棵树的根为轴心顺时针旋转45度。

3.二叉树转换为森林

将二叉树的右链断开后,根结点及其左子树作为森林中的第一棵树;

重复上述步骤,即可将二叉树转换为森林;

二叉树转换为森林是唯一

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值