树结点数

树结点数

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 ,中括号表示取整。

猜你喜欢

转载自www.cnblogs.com/gznest/p/12640719.html