二叉树的性质

要想弄清楚二叉树的性质,我们就要先理解什么是二叉树。

满足以下两个条件的树就是二叉树:

  1. 本身是有序树;
  2. 树中包含的各个结点的度不能超过 2,即只能是 0、1 或者 2

二叉树的性质_第1张图片 

 接下来我们来看二叉树的性质:

 

性质1:在二叉树的第 i 层上至多有 2^{i-1} 个结点(i >= 1) 

证明: 因为是 至多 所以我们就画一个最大值,即除了叶子结点,每个结点的度都为2

二叉树的性质_第2张图片 

相信找规律大家都会把,从上图中,不难得出 每层上最多的结点数 与 层数的关系,即  2^{i-1} 

 当然这个规律也是和二叉树本身有关的,因为二叉树最多一个结点有2个度,那么在最大值的情况下,每增加一个父结点就会多2个子结点 ,所以除了根节点,其他层的结点都是偶数(即与2的倍数有关)。 最大值都求出来了,那其他情况每层的结点数就一定是 小于等于最大值的.

 

性质2:深度为k的二叉树至多有 2^{k}-1 个结点(k>=1)

证明:由性质1可知,深度为k的二叉树的最大结点数为

二叉树的性质_第3张图片 

 

性质3:对任何一棵二叉树 T,若其终端结点数为 n0 ,度数为 2 的结点数为 n2, 则 n0 = n2 + 1 

证明:设 n1 为度为1的结点数, n2 为度为2的结点数, 同理 n0 为度为0的结点数.

求二叉树的结点数的方法有两种:

方法一: 所有结点加起来等于总结点  即  n1 + n2 + n0 = n

方法二: 所有孩子结点加根节点等于总结点: n1 + 2n2 + 1 = n 

将二者相减 最后 得出  n0 = n2 + 1 

 

性质4:具有 n 个结点的完全二叉树的深度为 ⌊logn⌋+1 

 证明:假设二叉树的深度为 k,则根据完全二叉树的定义得知,它的前 k-1 层是深度为 k-1 的满二叉树,共有 2^{k-1}-1 个结点。由于二叉树深度为 k,所以第 k 层上还有结点,因此该二叉树的结点数 n >2^{k-1}-1  。 再由性质2可知 n <= 2^{k}-1 所以得出:

  2^{k-1} -1< n \leqslant 2^{k}-1 

 

 因为对于 完全二叉树而言,最后一层最左边至少有一个结点,所以推出:

2^{k-1}\leq n< 2^{k} 

三项取对数后得: 

k-1\leq logn < k 

因为 k 为整数,所以有: 

 k = ⌊logn⌋+1 

 

 

 

 

 

你可能感兴趣的:(二叉树)