zoukankan      html  css  js  c++  java
  • 树结点数

    树结点数

    0.概念

    树(tree)指每个结点只有一个前件(也称父结点)、有多个后件(也称子结点)的非线性结构。没有父结点的结点称为根结点,每棵树只能有一个根结点;没有子结点的结点称为叶子结点。树结构中,一个结点拥有子结点的个数称为该结点的度;所有结点中最大的度称为这棵树的度。

    1.结点数计算

    假设树度为 x 的结点数为 nx ,则一棵树可以表示为:

    x 0 1 2 3 ...
    nₓ n₀ n₁ n₂ n₃ ...

    根据树的形成过程,每增加一个度为 x 的结点,总结点数将增加 x 个。所以:

    [Sum = sum n_i = 1 + sum i imes 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 ,中括号表示取整。
  • 相关阅读:
    shell的执行顺序问题
    七层负载均衡——HAProxy
    不要自以为是码农
    SSL协议运行机制
    Linux启动流程
    MIM协议与Base64编码
    Adele的生活
    你值得拥有:25个Linux性能监控工具
    [Zabbix] 如何实现邮件报警通知以及免费短信报警通知
    php.ini中date.timezone设置分析
  • 原文地址:https://www.cnblogs.com/gznest/p/12640719.html
Copyright © 2011-2022 走看看