一、二叉树的定义
二叉树(Binary Tree) 是由n个结点构成的有限集(n≥0),n=0时为空树,n>0时为非空树。对于非空树T TT:
有且仅有一个根结点;
除根结点外的其余结点又可分为两个不相交的子集T L T_LT
L
和T R T_RT
R
,分别称为T TT的左子树和右子树,且T L T_LT
L
和T R T_RT
R
本身又都是二叉树。
很明显该定义属于递归定义,所以有关二叉树的操作使用递归往往更容易理解和实现。
从定义也可以看出二叉树与一般树的区别主要是两点,一是每个结点的度最多为2;二是结点的子树有左右之分,不能随意调换,调换后又是一棵新的二叉树。
二、二叉树的形态
五种基本形态
从上面二叉树的递归定义可以看出,二叉树或为空,或为一个根结点加上两棵左右子树,因为两棵左右子树也是二叉树也可以为空,所以二叉树有5种基本形态:
三种特殊形态
三、二叉树的性质
任意二叉树第 i ii 层最大结点数为2 i − 1 。 ( i ≥ 1 ) 2^{i-1}。(i≥1)2
i−1
。(i≥1)
归纳法证明。
深度为 k kk 的二叉树最大结点总数为2 k − 1 。 ( k ≥ 1 ) 2^k-1。(k≥1)2
k
−1。(k≥1)
证明:∑ i = 1 k 2 i − 1 = 2 k − 1 \sum_{i=1}^k 2^{i-1} =2^k-1∑
i=1
k