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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code_流苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值