算法:二叉树的性质

性质一

在二叉树的第i层上最多有2^(i-1)个节点(i>=1)

证明:采用归纳法证明此性质

  • 当i=1时,只有一个根节点,2^(i-1) = 2^(0) = 1,命题成立
  • 当j>1时, 由于二叉树的每个结点至多有两个孩子,故"第(i+1)层上的结点数目" 最多是 “第i层的结点数目的2倍”。也就是第(i+1)层节点数 = 2 * 第i层节点数。
    • f(n) = 2*f(n-1).
      f(1) = 1 = 2^(0)
      f(2) = 2 * f(1) = 2^(1)
      f(3) = 2^(2)
      f(i) = 2^(i-1)

性质二

深度为k的二叉树最多有2^(k)-1个节点(k>=1)

证明:深度为k的二叉树的所有节点为各层上的所有节点之和。

  • 证明:在具有相同深度的二叉树中,当每一层都含有最大结点数时,其树中结点数最多。利用"性质1"可知,深度为k的二叉树的结点数至多为:
    20+21+…+2k-1=2k-1
    故原命题得证!

1 + 2 = 4 -1
1 + 2 + 4 = 8 - 1
1 + 2 + 4 + 8 = 16 - 1

性质三

性质3:包含n个结点的二叉树的高度至少为log2 (n+1)

证明:根据"性质2"可知,高度为h的二叉树最多有2{h}–1个结点。反之,对于包含n个节点的二叉树的高度至少为log2(n+1)。

性质四

对任何一颗二叉树,如果其终端节点数为n0,度为2的节点数为n2,那么n0=n2+1

证明:因为二叉树中所有结点的度数均不大于2,所以结点总数(记为n)=“0度结点数(n0)” + “1度结点数(n1)” + “2度结点数(n2)”。由此,得到等式一。
(等式一) n=n0+n1+n2

令一方面,0度节点没有孩子,1度节点有一个孩子,2度节点有两个孩子,因为二叉树孩子节点的数量数n0 + 2*n2,故二叉树中的结点总数又可表示为等式二。
(等式二) n=n1+2 * n2+1

既有:n0+n1+n2 = 0 + n1 + 2*n2 + 1 ====》 n0 = n2 + 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值