树结点数
树结点数
0.概念
树(tree)指每个结点只有一个前件(也称父结点)、有多个后件(也称子结点)的非线性结构。没有父结点的结点称为根结点,每棵树只能有一个根结点;没有子结点的结点称为叶子结点。树结构中,一个结点拥有子结点的个数称为该结点的度;所有结点中最大的度称为这棵树的度。
1.结点数计算
假设树度为 x 的结点数为 nx ,则一棵树可以表示为:
x | 0 | 1 | 2 | 3 | ... |
---|---|---|---|---|---|
nₓ | n₀ | n₁ | n₂ | n₃ | ... |
根据树的形成过程,每增加一个度为 x 的结点,总结点数将增加 x 个。所以: |
\[Sum = \sum n_i = 1 + \sum i \times n_i
\]
其中 Sum 表示树的总节点数。
同理,每增加一个度为 x 的结点,叶子节点数将增加 x-1 个。所以:
\[Sum' = n_0 = 1 + \sum n_i(i-1) = 1 + \sum_{i=2} n_i(i-1)
\]
其中 Sum' 表示树的叶子结点数。
2.二叉树特例
二叉树度小于3的树。即每个结点最多有两个子结点。有如下性质:
- 第k层上最多有 2k-1 个结点。
- k层二叉树最多有 2k-1 个结点。
- 叶子结点总比度为2的结点多一个。\[Sum' = 1 + \sum_{i=2} n_i(i-1) = 1 + n_2 \]
- 具有n个结点的二叉数深度最少为 [log2(n+1)]+1 ,中括号表示取整。