【问题标题】:Height of tree using depth使用深度的树的高度
【发布时间】:2011-04-19 12:06:37
【问题描述】:

大家好 我需要一些关于计算函数高度的时间复杂度的方向,该函数高度使用函数深度来获取树的高度。

所以函数是这样的:

height(Tree)
height h = 0;
for(each external node of T)
 h = max(height, getdepth(external node));

该算法的最坏情况是,每个节点都处于同一级别? 在这种情况下,我们最终对所有外部节点做同样的事情,因为所有节点都将具有相同的高度 - n*(n-some_i) = n^2 ? 但是这样想——当树向左或向右不平衡时, 复杂性将再次成为 1+2+3+4...+n = n^2 ?

我有点困惑。这是正确的思考方式吗?

谢谢

【问题讨论】:

    标签: algorithm tree


    【解决方案1】:

    您最好从根开始并递归遍历树,跟踪当前深度和您看到的最大深度。这样你只需要遍历树一次。如果单独计算每个节点的深度,最终会遍历树 N 次,其中 N 是外部节点的数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2022-01-25
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多