二叉树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