二叉树的理论知识(术语)

专有名词

  • 根节点:最上方的结点
  • 度:每个结点链接子结点的数目,最大的度也叫树的度
  • 子树:每个结点的延申
  • 结点层次:按照从上往下的顺序,根结点的节点层次为1
  • 子结点
  • 父结点
  • 叶子结点:度为0的结点
  • 兄弟结点:父结点是同一个
  • 祖先结点:从根结点开始,一直到某个结点的整条路径上的所有结点

二叉树(它的度最大为2)

专有名词

  • 左子树
  • 右子树
  • 满二叉树
  • 完全二叉树(最后一层可能不是满的,由左到右排)

普通树和二叉树的转换

下面是一个普通的二叉树
在这里插入图片描述
转换规则

  1. 左子树依然是他的左子树
  2. 该子树的其他兄弟结点变成自己的右子树

根据上述要求,可以得到
在这里插入图片描述

森林变成二叉树

  1. 将每一个普通树变成二叉树
  2. 将变成二叉树的右子树位置连接其他树的根结点

二叉树相关的数学性质

  • 第i层的最大结点数为 2 i − 1 2^i-1 2i1

  • 对于一个深度为k的最大结点数 n = 2 0 + 2 1 + . . . . . . . . + 2 k − 1 2^0+2^1+........+2^{k-1} 20+21+........+2k1
    由高中的等比数列求和公式可得 S n = 1 ∗ ( 1 − 2 k ) / 1 − 2 S_n = 1*(1-2^k)/1-2 Sn=1(12k)/12
    化简可得 S n = 2 k − 1 S_n = 2^k - 1 Sn=2k1

  • 假设一颗二叉树的度为0,1,2的节点数分别为 n 0 , n 1 , n 2 n_0,n_1,n_2 n0,n1,n2
    n = 0 ∗ n 0 + 1 ∗ n 1 + 2 ∗ n 2 n = 0*n_0+1*n_1+2*n_2 n=0n0+1n1+2n2
    n = n 1 + 2 ∗ n 2 n = n_1+2*n_2 n=n1+2n2
    边数和 E = n 1 + 2 ∗ n 2 = n − 1 E=n_1+2*n_2=n-1 E=n1+2n2=n1 移项得 n = n 1 + 2 ∗ n 2 + 1 n=n_1+2*n_2+1 n=n1+2n2+1
    n = n 1 + 2 ∗ n 2 + n 0 n=n_1+2*n_2+n_0 n=n1+2n2+n0
    联立 n 1 + 2 ∗ n 2 + 1 = n 1 + n 2 + n 0 n_1 +2*n_2+1=n_1+n_2+n_0 n1+2n2+1=n1+n2+n0
    化简 n 0 = n 2 + 1 n_0 = n_2+1 n0=n2+1(结论)

  • 完全二叉树的深度 h = l o g 2 n + 1 h = log_2n+1 h=log2n+1 向下取整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值