设一棵完全二叉树具有1000个结点,则此完全二叉树有()叶子结点,有()个度为2的结点。

一、问题

设一棵完全二叉树具有1000个结点,则此完全二叉树有(500)叶子结点,有(499)个度为2的结点。

分析:
1、叶子结点:度为0的结点。
2、以n0代表度为0的结点,n2代表度为2的结点
3、则根据二叉树的性质有 n0 = n2 +1

因此我们只要求出n0就能求出n2的结点个数,思路实现内容如下:

二、思路实现

  • 第一步,求n0的个数。
    1000个结点的完全二叉树有10层( 2 9 2^9 29 - 1 < 1000 < 2 10 2^{10} 210-1),其中前9层为满二叉树,共有512-1=511个结点。

    因此有1000-511=489,说明第10层有489个结点,且第10层的结点均为叶子结点(度为0的结点)。

    而489/2 = 244…1,说明第9层有244+1(245)个结点有子结点,而根据满二叉树第9层共有 2 8 2^8 28 = 256个结点,则第9层度为0的结点(叶子结点)个数为 256-245 = 11。

    n0 = 第9层的叶子结点数 + 第10层的叶子结点数 = 489+11 = 500,即叶子结点个数为500。

  • 第二步,求n0 = n2 +1求解n2的个数。
    由第一步所得叶子结点个数,可得二叉树中度为2的结点数为:
    n2=n0-1=500-1=499
    即:度为2的结点数有499个。

问题记录时间:2023.11.5

Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!

猜你喜欢

转载自blog.csdn.net/qq_51646682/article/details/134237133