二叉树主要性质推导

二叉树主要性质推导


二叉树的定义

二叉树或为空树,或是由一个根节点加上两棵分别被称为左子树和右子树的、互不相交的二叉树组成。

二叉树性质

  1. 二叉树第i层上最多有 2 i − 1 2^{i-1} 2i1个结点

    • 数学归纳法:
      当i=1时,二叉树只有一个根结点;
      假设对于第j层满足至多有 2 j − 1 2^{j-1} 2j1个结点,如果第j层每个结点 都拥有两个孩子结点,则第j+1层拥有 2 j 2^j 2j个结点。
  2. 深度为k的二叉树上至多含有 2 k − 1 2^{k}-1 2k1个结点

    证明:由性质1知二叉树每一层最大结点数个数。
    因为一共有k层,所以有结点个数n=2^0+2^1+...+2^(k-1)
    等比数列求和得n=2^k-1
    
  3. 对任何一颗二叉树,设叶子结点数为 n 0 n_0 n0,度为2的节点数为 n 2 n_2 n2,那么 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1

    • 证明:设度为1的结点个数为 n 1 n_1 n1,结点总个数为n。
      则有 n = n 0 + n 1 + n 2 n=n_0+n_1+n_2 n=n0+n1+n2,(1)
      又因为度为1的结点有1个孩子,度为2的结点有两个孩子,除根结点外所有结点都有父亲结点,
      所以 n = 2 n 2 + n 1 + 1 n=2n_2+n_1+1 n=2n2+n1+1,(2)
      联立(1)和(2)得到: n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
  4. 具有n个结点的完全二叉树的深度为 [ l o g 2 n ] + 1 [log_2n]+1 [log2n]+1

  • 证明:
    由性质2得到深度为k的完全二叉树最多有 2 k − 1 2^{k}-1 2k1个结点,
    其至少: 2 k − 1 2^{k-1} 2k1个结点,
    故有 2 k − 1 ⩽ n < 2 k 2^{k-1} \leqslant n<2^k 2k1n<2k
    取对数 k − 1 ⩽ l o g 2 n < k k-1 \leqslant log_2n<k k1log2n<k
    所以k=[log2n]+1
  1. 对有n个结点的完全二叉树的结点按层序编号,则对任一结点 i ( 1 ⩽ i ⩽ n ) i(1 \leqslant i \leqslant n) i(1in),有:
    • 如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是[i/2]
    • 如果2i>n,则结点i无左孩子;如果2i<=n,则其左孩子是2i
    • 如果2i+1>n,则结点无右孩子;如果2i+1<=n,则其右孩子是2i+1
j
i
C
D
  • 证明:假设结点i在第k层,其双亲j是第k-1层的第q个结点。
    则有 j = 2 k − 2 − 1 + q j=2^{k-2}-1+q j=2k21+q
    如果i是j的左孩子则有, i = 2 k − 1 − 1 + 2 ( q − 1 ) + 1 i=2^{k-1}-1+2(q-1)+1 i=2k11+2(q1)+1
    如果i是j的右孩子则有, i = 2 k − 1 − 1 + 2 ( q − 1 ) + 2 i=2^{k-1}-1+2(q-1)+2 i=2k11+2(q1)+2
    综上联立各个方程得出:
    j=[i/2],若j有左孩子, 2 j ⩽ n 2j\leqslant n 2jn i = 2 j i=2j i=2j,若j有右孩子, 2 j + 1 ⩽ n 2j+1 \leqslant n 2j+1n i = 2 j + 1 i=2j+1 i=2j+1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值