树和森林转二叉树,二叉树无右孩子(或右指针域为空)的结点个数计算思路

前提是知道非终端结点(分支结点)的个数,假设非终端结点的个数为n

1.对于树转二叉树:

因为转化规则是“左孩子右兄弟”,如果有n个分支结点,因为每个分支结点都会有孩子,这些孩子都是兄弟,然而最右边的孩子已经没有右兄弟了,没有右兄弟就意味着在转化为二叉树后这个孩子没有右孩子——即右指针域为空。

又因为每个分支结点都存在一个没有右兄弟的孩子,所以n个分支结点就存在n个没有右兄弟的孩子,在转化为二叉树后这些孩子的右指针域都为空。

最后,不要忘记树的根结点是没有兄弟的,所有在转化为二叉树后根结点的右指针域也为空,所以二叉树中右指针域为空的结点个数是n+1

2.对于森林转二叉树:

和树转二叉树类似,区别在于森林由多棵树组成,第2棵、第3棵……的根结点都是上一棵树的根结点的右孩子。所以在森林转二叉树时,除了最后一棵树之外,其他每棵树的根结点都存在右孩子。

因为森林中非终端结点的个数为n,所以二叉树中右指针域为空的结点个数是n+1

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员班长

感谢您的一路相伴

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值