DFS 中的探索顺序是否会影响边缘分类

Does order of exploration in DFS affect edge classification

我正在为大学实现 DFS 和边缘分类(基于本文提供的代码:https://courses.csail.mit.edu/6.006/fall11/rec/rec14.pdf)。

我用这张图作为测试:

斜体字母只是顶点的名称,而顶点内的数字分别是发现时间和完成时间。边缘分为后退、前进或交叉;其他都是树边。

如您所见,此图按以下顺序访问:首先是 s,然后是它的邻居(遵循 DFS);当没有更容易接近的邻居时,访问开始于 t.

为了测试我们的算法,老师会提供一个每条边为一条线的文本文件。在执行 DFS 时,我只是按照每个顶点在文件中出现的顺序进行操作;在这种情况下,首先是 s,然后是 vnot t。这又给出了不同的边分类:tv被认为是交叉边,tu一个后面一个和ut一棵树一个。

这种行为正常吗?探索的顺序会影响最终的边缘分类吗?如果是这样,我的分类和示例的分类都正确吗?如果没有,有什么办法可以知道先探索哪个顶点?

Is this behavior normal? Does the order of exploration affect the final edge classification?

当然可以。在存在任何后向或交叉边的情况下(即当图是 不是 树时),算法选择边进行探索的顺序决定了边的分类。

If so, are both classifications, mine and the example's, correct?

是的,两种分类都是正确的,只要问题没有要求特定的探索顺序setter。

If not, is there any way I can know which vertex to explore first?

该问题可能指定了特定的探索顺序 - 例如,您图片上的图形似乎是按顶点命名的字母倒序遍历的:z before w from syw 之前来自 zvu 之前来自 t