Eri*_*ric 2 algorithm graph data-structures
对于具有树特征的无向图,我们可以选择任意节点作为根。结果图是一个有根的树。在所有可能的有根树中,高度最小的树称为最小高度树(MHTs)。一个图最多可以有多少个 MHT?
我相信答案是 1 或 2。所以最多 2 个不同的 MHT。这个问题等同于首先找到给定图的直径。树的直径是两个树节点之间路径的最大长度。
有一个非常优雅的两遍算法来找到一棵树的直径。
有了直径信息,我们实际上可以得到这些 MHT 的根节点。如果直径是偶数,则只有1个MHT,它的根是路径B到C的中间节点;如果直径为奇数,则将有 2 个 MHT,根是路径 B 到 C 的中间 2 个节点。这 2 个根节点保证彼此相邻。
以下链接显示了有关树中心数量的证明。这个问题的关键是我们想使用树的中心作为根,因为这提供了到所有其他节点的整体最小路径长度。您可以通过矛盾来证明这一点,使用任何其他节点都会产生更长的树高。