一、问题
设一棵完全二叉树具有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)
点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!