二叉树T:n(n>=0)个节点的有限集。

n=0,称它空树。

当n>0时,有且仅有一个特定的结点,称为树的根(root)。

当n>1时,它由一个根节点和两棵分别称为左子树TL和右子树Tr的互不相交的二叉树构成。

 

二叉树特点:

每个节点至多有二棵子树。

二叉树的子树有左、右之分,且其次序不能任意颠倒。

五种形态:空、只有一个结点、只有左子树、只有右子树、有左右子树

 

满二叉树:结点最满的二叉树

完全二叉树:最后一层的最少一个结点,只能缺少右子树、其余层是满二叉树

 

性质1:在二叉树的第i层上至多有2(i-1)次方个节点(i>=1)。

证明(归纳法证明):

当i=1时,只有一个根结点,2º=1 成立

假设对所有i=n-1命题成立,即第n-1层上至多有2(n-2)次方个节点。

那么,对i=n,由于二叉树每个节点的度至多为2,

因此,第n层上最大结点数是第n-1层的2倍,即

2*2(n-2)   =  2 (n-1)

综上,命题得证。

 

性质2:深度为n的二叉树至多有2ⁿ-1个结点(n>=1)。

深度为n的二叉树拥有结点数最多的情况,实质上就是每层上的结点都是满的情况,也就是二叉树是一个满二叉树。

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

把二叉树所有的结点分为3种类型,分别是没有孩子的结点,即终端结点、有1个孩子的结点和两个孩子的结点,分别记为n0,n1和n2。

对二叉树从下向上看,边的总数为:

n0 +n1 +n2 -1

对二叉树从上向下看,边的总数为:

n1 + 2*n2

因此:n0 +n1 +n2-1 = n1 +2*n2

整理即为:n0 = n2 +1

 

性质4:具有n个节点的完全二叉树的深度为log₂n +1

非完全二叉树的左右孩子是随机的、不确定的,结点数与深度之间的关系很难确定,因此,本性质是针对完全二叉树来考虑的。

 

证明:假设深度为k,则根据性质2和完全二叉树的定义有

2(k-1)次方 -1 < n <= 2(k)次方-1,也即,2(k-1)次方 < n <= 2(k)次方

于是,k-1 < log₂n <= k,整理后为,log₂n < k <= log₂n+1

因为,k是整数,所以:

k = log₂n+1