结点的度:结点的子树棵数。(二叉树中任意节点的度不大于2)。
叶结点:度为0的结点,或者称为终端节点。
分支结点:二叉树度不为0的结点,即二叉树中除了叶结点的所有结点。
树的深度:二叉树中所有结点的最大层号称为树的深度或者二叉树的高度。
满二叉树:所有的分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,则该二叉树称为满二叉树。
完全二叉树:对二叉树从上到下,从左至右进行编号,如果二叉树的编号与满二叉树编号一致,则称为完全二叉树。其特点是:
1只有最底层的结点不满,其余各层的节点都是满的。
2一棵非空的完全二叉树至多有一个度为1的结点(或者没有)。
3如果完全二叉树的某个结点没有左孩子,则一定没有右孩子。
4任意结点的左、右子树的高度之差绝对值不大于1。此特点称为平衡性,(即叶子节点只可能出现在最下层或者次下层)。
正则二叉树:没有度为1的结点。(即二叉树中只有度为0和2的结点)。
满二叉树是正则二叉树,完全二叉树不一定是正则二叉树,正则二叉树不一定是满二叉树,也不一定是完全二叉树。
二叉树性质:
一棵非空二叉树的第i层上最多有2^(i-1)个结点。
一棵深度为k的二叉树,最多含有2^k - 1个结点。
一棵非空二叉树,若叶结点个数为n0,度数为2的节点个数为n2,则有: n0 = n2+1 ;
1
2 故n2 = 1+2+……+2^(k-1) = 2^k-1 ;
-------- 由于叶子节点(度为1的节点)n0 = 2^k 所以 n0 = n2+1 ;
k+1
一棵高度为h的正则二叉树,至少有 2h-1个结点 ,至多(此时为满二叉树)有2^h-1个结点。
1
2 3 由此可推断,至少有 2h-1个结点 ,至多(此时为满二叉树)有2^h-1个结点。
4 5
6 7
……
完全二叉树性质:
具有n个结点的完全二叉树,其深度k为 < log 2 n > +1 , 其中< >为向下取整。
当深度为k时, n >2^(k-1)-1 && n<2^k-1 ; 即 2^(k-1) =< n < 2^k 即 ( k-1) =< log2(n) < k , 由于k为整数,所以 得到上述的k值
对于具有n个结点的完全二叉树,按从上到下,从左到右的顺序,所有结点从1开始顺序编号,则对于任意的序号为i的节点,有:
如果i >1 ,则其双亲结点为 < i/2 > ,如果 i= 1 ,则为根节点,没有双亲结点。
如果2i <=n ,则序号i的左孩子结点序号为2i,如果 2i > n ,则序号i不存在左孩子。
如果2i+1 <= n ,则序号i的有孩子结点序号为2i+1,如果2i+1>n,则序号不存在右孩子。
若从1开始顺序编号,则序号i对应双亲节点序号为 < ( i-1)/2 > ,左孩子编号为 2i+1, 右孩子编号为 2i+2 ;
一棵含n个结点的非空满二叉树,其叶结点的个数为 (n+1)/ 2 , 设深度为k , 则 2^(k-1) + 2^(k-1) -1 = n , 即可求出。
一棵含高度为h的非空完全二叉树,至少含有2^(h-1)个结点,最多含有2^h-1个结点。
1
2 3
4 5 …… 此时结点树为最少, 有 2^(h-1) - 1 + 1(最后一层的叶子结点),最多的情况即为满二叉树, 2^h-1 ;
……
2i+1