二叉树中的若干问题

1.非空二叉树的叶子节点数是度为2的节点数+1;

证明:度是树的分支数目,二叉树的度为0、1、2。假设N0表示度为0的节点数,N1表示度为1的节点数,N2表示度为2的节点数。

N0+N1+N2=N (该式表达意思是总节点数为N)

N1+2N2=N-1 (该式表达意思是所有伸出来的路径来自于度为1和度为2的节点)

由上述两个式子可得,N0=N2+1


2.证明在N个节点的二叉树中,存在N+1个NULL指针代表N+1个儿子。

证明:

方法(1)

 N个节点,在链表结构中,每个节点都会存有两个指针分别指向左儿子和右儿子,即共有2N个指针。除根节点外,每个节点都只有一个父节点,即有N-1个非空指针,此时则有N+1空指针代表N+1个儿子。

方法(2)

度是指树的分支数目,二叉树的度为0,1,2。N个节点,假设N0表示度为0的节点有N0个,N1表示度为1的节点有N1个,N2表示度为2的节点有N2个。即

N0+N1+N2=N                                      (a)

这里我们用到了一个结论非空二叉树的叶子节点是度为2的节点数+1。

即N0=N2+1,带入(a)式可得N1+2*N2=N-1,由于总的指针数为2N,那么空指针数为N+1


3.高度为H的二叉树中,节点的最大个数是2^(H+1)-1

证明:高度为H,即说明根节点的路径长为H,该二叉树有H+1层,当二叉树为满树时,节点最多,即节点最大为

1+2+4+...+2^H,根据等比数列的求和公式可得,值为2^(H+1)-1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Coder567

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值