确定无向图是否为树的最佳算法的时间复杂度是什么?
我们可以说Big-oh(n),n个顶点??
答案 0 :(得分:5)
是的,是O(n)。在有向图中使用深度优先搜索有3种类型的非树边 - 交叉,后退和前进。
对于无向的情况,唯一的非树边缘是后边缘。所以,你只需要搜索后边缘。
简而言之,选择一个起始顶点。遍历并继续检查遇到的边是否是后边缘。如果你找到了n-1个树边而没有找到后边缘,然后用尽边缘,你就是黄金。
(只是为了澄清 - back edge
是已经遇到另一端顶点的那个 - 并且由于无向图的属性,另一端的顶点将是现在的祖先正在构造的树中的节点。)
答案 1 :(得分:2)
是的,是O(n)。
选择一个起始节点,并执行深度优先遍历。如果您多次访问节点,则它不是树。