【问题标题】:How do I calculate the minimum and maximum amount of nodes and leaves in a rooted tree?如何计算有根树中节点和叶子的最小和最大数量?
【发布时间】:2019-04-23 07:21:12
【问题描述】:

我希望计算高度为 h 和度数为 d 的有根树中节点和叶子的最小和最大数量。

我猜叶子的最小数量总是 1(如果 h >= 2)。 节点的最大数量应该是 G^(h-2),叶子应该是 G^(h-1)。 对于最少数量的节点,我一无所知。

我是对的还是我遗漏了什么?

【问题讨论】:

    标签: graph tree computer-science directed-graph


    【解决方案1】:

    鉴于树的高度为 h 和度数为 d,以下适用。

    最少节点数

    要构建一个高度为 h 且节点数尽可能少的树,您会希望每个节点只有一个子节点。因此,您将需要 h 个节点。

    最大节点数

    要使用尽可能多的节点,您会希望每个节点(除了叶子)都有尽可能多的子节点,即 d childern。这看起来像:

    level      nodes at level 
    
      1              1    (d^0)
      2              d    (d^1)
      3              d^2
      4              d^3
    

    所以节点的数量是一个总和

    num_nodes = d^0 + d^1 + d^2 + d^3 + ....
    

    这是一个几何和,可以这样计算:

    num_nodes = (1 - d^h)/(1 - d)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2013-10-21
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多