设一颗完全二叉树共有699个结点,则在该二叉树中的叶子结点数为多少?求详细过程。。。

2024-11-17 10:43:30
推荐回答(2个)
回答1:

根据“二叉树的第i层至多有2^(i �6�1 1)个结点;深度为k的二叉树至多有2^k �6�1 1个结点(根结点的深度为1)”这个性质:
因为2^9-1 < 699 < 2^10-1 ,所以这个完全二叉树的深度是10,前9层是一个满二叉树,
这样的话,前九层的结点就有2^9-1=511个;而第九层的结点数是2^(9-1)=256
所以第十层的叶子结点数是699-511=188个;
由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有188个,所以应该去掉第九层中的188/2=94个;
所以,第九层的叶子结点个数是256-94=162,加上第十层有188个,最后结果是350个。

回答2:

假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2,合并成一个公式:n0=(n+1)/2 ,所以这里得出叶子节点数n0=(699+1)/2=350.相应地也能求出度数为2的节点数为n2=n0-1=349