设一棵完全二叉树共有700个结点,则在该二叉树中____有个叶子结点。
答案:2 悬赏:10 手机版
解决时间 2021-12-20 10:55
- 提问者网友:感性作祟
- 2021-12-19 13:01
设一棵完全二叉树共有700个结点,则在该二叉树中____有个叶子结点。
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-12-19 13:15
350。
如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。 可以根据公式进行推导,假设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 ,就可根据完全二叉树的结点总数计算出叶子结点数。
如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。 可以根据公式进行推导,假设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 ,就可根据完全二叉树的结点总数计算出叶子结点数。
全部回答
- 1楼网友:怀裏藏嬌
- 2021-12-19 14:08
解法一:
根据二叉树的性质3可知:叶子结点数n0=n2+1,
根据完全二叉树的概念可知,度为1的结点数要么为1,要么为0,
二叉树总结点数n=n0+n1+n2=2n0+n1-1,
得出n0=(n+1-n1)/2=n/2向上取整,
所以本题答案是350个叶子结点。
解法二:
易求出总层数和末层叶子数。总层数k=log2n向上取整 =10;
且前9层总结点数为2^9-1=511 (完全二叉树的前k-1层肯定是满的)
所以末层叶子数为700-511=189个。
请注意叶子结点总数≠末层叶子数!
还应当加上第k-1层(靠右边)的0度结点个数。
末层的189个叶子只占据了上层的95个结点(189/2 ),上层(k=9)右边的0度结点数还有2^(9-1)-95=161个。
所以,全部叶子数=189(末层)+161(k-1层)=350个。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯