我正在为大学实施DFS和边缘分类(基于本文提供的代码:https://courses.csail.mit.edu/6.006/fall11/rec/rec14.pdf)。
斜体字母只是顶点的名称,而顶点内的数字分别是发现和终结时间。边缘分为后退,前锋或交叉;所有其他都是树边缘。
如您所见,此图表按以下顺序访问:首先是 s
,然后是其邻居(在DFS之后);当没有更多可访问的邻居时,访问开始于 t
。
为了测试我们的算法,教师将提供一个文本文件,每个边缘作为一条线。执行DFS时,我只需按照文件中每个顶点的出现顺序;在这种情况下,首先是 s
,然后是 v
,不是 {{1} } 的。这反过来又提供了不同的边缘分类: t
到 t
被视为交叉边缘, v
到 t
后面一个, u
到 u
一个树。
这种行为是正常的吗?勘探顺序是否会影响最终边缘分类?如果是这样,那么分类,我的和例子都是正确的吗?如果没有,有什么方法可以先知道要探索哪个顶点?
答案 0 :(得分:2)
这种行为是正常的吗?勘探顺序是否影响最终边缘分类?
绝对。算法选择边缘进行探索的顺序决定了在有任何后边缘或交叉边缘的情况下边缘分类(即当图形不树时)。
如果是这样,那么分类,我的和示例都是正确的吗?
是的,只要问题制定者没有特定的探索顺序,两种分类都是正确的。
如果没有,有什么方法可以先知道要探索哪个顶点?
问题可能会指定特定的探索顺序 - 例如,图片上的图表似乎以顶点命名的反向字母顺序遍历:z
w
之前s
,y
来自w
,z
来自v
来自u
。