连接的无向非循环图中每个可能树的高度

时间:2014-09-02 16:36:22

标签: algorithm graph tree

给定一个具有N个节点的连通,无向,非循环图,如何在线性时间内找到跨越图中所有节点的每棵树的高度?

1 个答案:

答案 0 :(得分:1)

重新描述:给定一个无根树T,计算T的每个顶点v,通过在V处生根,从T得到的有根树T(v)的高度。

首先为T选择一个任意的根r,得到T(r)。扫描T(r)离开到根,为每个顶点v存储以v为根的T(r)子树的高度。扫描T(r)根到叶,计算每个顶点v, T中从V开始的最长路径的长度,它不访问v的适当后代(相对于T(r))。第二步有点棘手;你需要计算v及其兄弟姐妹的最高和最高的高度,这可以重复用于v兄弟。 T(v)的高度是其两个标签的最大值。