完全二叉树计算叶子结点数

 

 

1. 首先看下完全二叉树的定义:

    一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树

2.一条规则:

   对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1

  推导过程:

  n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数。

  则分支数=2n2+n1  (每个n2节点有2个分支,每个n1结点有1个分支)

  另外又有:分支数=n0+n1+n2-1   (每个结点上面对应一个分支,除了根节点上面没有分支)

  2n2+n1=n0+n1+n2-1  得  n0=n2+1

3.假设n为完全二叉树的结点总数,则有:n=n0+n1+n2

  结合2的结论有:n0=(n-n1+1)/2

4.由于n1=1或者0,则

  •   当n1=0时(即度为1的节点为0个时,此时n为奇数)或者n为奇数时

                  n0= (n+1)/2;

  •   当n1=1时(即度为1的节点为1个时,此时n为偶数)或者n为偶数

                 n0= n/2;

  

  

  

转载于:https://www.cnblogs.com/tiffer/p/4438993.html

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值