Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 一个图最多可以有多少棵最小高度树(MHT)?_Algorithm_Data Structures_Graph - Fatal编程技术网

Algorithm 一个图最多可以有多少棵最小高度树(MHT)?

Algorithm 一个图最多可以有多少棵最小高度树(MHT)?,algorithm,data-structures,graph,Algorithm,Data Structures,Graph,对于具有树特征的无向图,我们可以选择任意节点作为根。结果图就是一棵有根的树。在所有可能生根的树木中,具有最小高度的被称为最小高度树MHT。一张图最多可以有多少个MHT?我相信答案是1或2。因此,最多2个不同的MHT。这个问题等价于首先找到给定图的直径。树的直径是两个树节点之间路径的最大长度 有一个非常优雅的两遍算法来计算一棵树的直径 选择任意节点A并从A中查找最远的节点B。使用深度优先搜索或呼吸优先搜索。 从节点B开始,执行第二次DFS或BFS以查找距离B最远的节点C。B和C之间的距离是此树的直

对于具有树特征的无向图,我们可以选择任意节点作为根。结果图就是一棵有根的树。在所有可能生根的树木中,具有最小高度的被称为最小高度树MHT。一张图最多可以有多少个MHT?

我相信答案是1或2。因此,最多2个不同的MHT。这个问题等价于首先找到给定图的直径。树的直径是两个树节点之间路径的最大长度

有一个非常优雅的两遍算法来计算一棵树的直径

选择任意节点A并从A中查找最远的节点B。使用深度优先搜索或呼吸优先搜索。 从节点B开始,执行第二次DFS或BFS以查找距离B最远的节点C。B和C之间的距离是此树的直径。 有了直径信息,我们实际上可以得到这些MHT的根节点。如果直径是均匀的,则只有1 MHT,其根是路径B到C的中间节点;如果直径为奇数,则将有2个MHT,根是路径B到C的中间2个节点。这2个根节点保证彼此相邻

下面的链接显示了有关树中心数的证明。这个问题的关键是我们希望使用树的中心作为根,因为这为所有其他节点提供了一个总的最小路径长度。您可以通过矛盾来证明这一点,使用任何其他节点都会产生更长的树高


我相信答案是1或2。因此,最多2个不同的MHT。这个问题等价于首先找到给定图的直径。树的直径是两个树节点之间路径的最大长度

有一个非常优雅的两遍算法来计算一棵树的直径

选择任意节点A并从A中查找最远的节点B。使用深度优先搜索或呼吸优先搜索。 从节点B开始,执行第二次DFS或BFS以查找距离B最远的节点C。B和C之间的距离是此树的直径。 有了直径信息,我们实际上可以得到这些MHT的根节点。如果直径是均匀的,则只有1 MHT,其根是路径B到C的中间节点;如果直径为奇数,则将有2个MHT,根是路径B到C的中间2个节点。这2个根节点保证彼此相邻

下面的链接显示了有关树中心数的证明。这个问题的关键是我们希望使用树的中心作为根,因为这为所有其他节点提供了一个总的最小路径长度。您可以通过矛盾来证明这一点,使用任何其他节点都会产生更长的树高