二叉树的深度:
一颗树只有一个节点,它的深度是1;
根节点只有左子树而没有右子树,那么二叉树的深度应该是其左子树的深度加1;
根节点只有右子树而没有左子树,那么二叉树的深度应该是其右树的深度加1;
根节点既有左子树又有右子树,那么二叉树的深度应该是其左右子树的深度较大值加1
利用性质1可知每层最多有2^(k-1)个结点,有k层。
利用等比数列求和可得=> 1+2+4+……+2^(k-1) = 2^k-1.
深度为k时至少有k个结点
证明:设总边数为S,节点总数为n,叶子节点数为n0,度为1的结点数为n1,度为2的结点数为n2
总结点:n = n0 + n1 + n2
总边数:S = n - 1 (除根节点外,其他节点都有其父结点所指向)
总边数:S = n2 * 2 + n1 * 1 + n0 * 0 (度为2说明指向两条边,度为1指向1条边,叶子节点不指向。)
2 3 => 4. n = n2 * 2 + n1 + 1
1 4 => n0 = n2 + 1
k = ⌊ l o g 2 n ⌋ + 1 k = \lfloor log_2n\rfloor+1 k=⌊log2n⌋+1
对于完全二叉树而言,每行第一个结点下标为2^(当前层数 - 1),所以完全二叉树结点最少时,深度为logn + 1,满二叉树时最后一个结点下标为2^(当前层数) - 1,当完全二叉树达到 满二叉树时,深度为log(n+1),对于该层而言,无论是满二叉树还是最底层只有一个结点的完全二叉树,他的结点下标处在[ 2^上层层数,2^当前层数 ),所有logn向下取整并加上1,得到的总是当前的深度。
f ( n ) = ( 2 n ) ! n ! ( n + 1 ) ! f(n) = {(2n)!\over n!(n+1)!} f(n)=n!(n+1)!(2n)!
或者是 f ( n ) = C 2 n n − C 2 n n − 1 f(n) = C_{2n}^n - C_{2n}^{n-1} f(n)=C2nn−C2nn−1