【发布时间】:2013-05-27 02:26:05
【问题描述】:
不久前我看到了这个帖子:
Best algorithm to determine if an undirected graph is a tree
它说要确定一个无向图是否是一棵树,你只需要检查它是否有一个循环。但是,您不必确保图形是连接的吗?我被告知一棵树是连接的和非循环的。仅检查非周期性如何就足够了?
谢谢。
【问题讨论】:
-
用于程序实施check this
不久前我看到了这个帖子:
Best algorithm to determine if an undirected graph is a tree
它说要确定一个无向图是否是一棵树,你只需要检查它是否有一个循环。但是,您不必确保图形是连接的吗?我被告知一棵树是连接的和非循环的。仅检查非周期性如何就足够了?
谢谢。
【问题讨论】:
你是对的。如果图是非循环的,那么它就是一片森林。此外,如果它只有一个组件,那么它就是一棵树。
提到的算法所做的是寻找后边缘。如果它找到一个,那么这个图就不是一棵树。如果它没有找到一个并且算法在用完边之前访问了 n-1 条边,那么它就是一棵树,因为访问了 n-1 条边意味着图确实是连接的(具有 n 个顶点的树有 n- 1 个边缘)。如果算法用完了边但没有达到 n-1 个访问边,那么这意味着图没有连接,因此它不是一棵树。
【讨论】: