1个回答
展开全部
因为是完全二叉树,所以叶子结点除最后一层的结点以外,还可能有倒数第二层的部分结点,所以首先要求出总共有多少层,用[log2n]+1得出共10层,也就是说叶子结点数是第十层的结点加上部分第九层的结点。第十层可以用总的结点数减去前9层的总结点数700-(2的n次方减1)为189,
第九层的叶子结点可以用第九层的总的结点个数减去被第十层占用的结点个数,第九层有2的(n-1)次方个结点即256个,现在关键是求被第十层占用的结点数,可以对第十层的结点数进行如下运算:round(第十层结点数除以2)(因为一个结点向下有左右子树,有两个分支)95,这样可以求出第九层的叶子结点数。最后,再用第十层上的叶子结点数189+(第九层的叶子结点256-第九层上的叶子结点数95)=350个。
第九层的叶子结点可以用第九层的总的结点个数减去被第十层占用的结点个数,第九层有2的(n-1)次方个结点即256个,现在关键是求被第十层占用的结点数,可以对第十层的结点数进行如下运算:round(第十层结点数除以2)(因为一个结点向下有左右子树,有两个分支)95,这样可以求出第九层的叶子结点数。最后,再用第十层上的叶子结点数189+(第九层的叶子结点256-第九层上的叶子结点数95)=350个。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询