计算机国二题目求解,解析看不太懂,求详细解析谢谢!
发布网友
发布时间:2022-05-07 19:32
我来回答
共1个回答
热心网友
时间:2022-07-01 05:23
因为是完全二叉树,所以叶子结点除最后一层的结点以外,还可能有倒数第二层的部分结点,所以首先要求出总共有多少层,用[log2n]+1得出共10层,也就是说叶子结点数是第十层的结点加上部分第九层的结点。第十层可以用总的结点数减去前9层的总结点数700-(2的n次方减1)为189,
第九层的叶子结点可以用第九层的总的结点个数减去被第十层占用的结点个数,第九层有2的(n-1)次方个结点即256个,现在关键是求被第十层占用的结点数,可以对第十层的结点数进行如下运算:round(第十层结点数除以2)(因为一个结点向下有左右子树,有两个分支)95,这样可以求出第九层的叶子结点数。最后,再用第十层上的叶子结点数189+(第九层的叶子结点256-第九层上的叶子结点数95)=350个。