是否有任何规则来选择第一个相邻顶点来进行图遍历?

时间:2018-05-04 10:59:17

标签: algorithm graph

假设我有这样的有向图,我想通过使用深度优先搜索方法遍历。

[D]< - [C]< - [A] - > [B]

我要从顶点A开始。 顶点A具有两个相邻的顶点B和C.

我想知道,我应该先选择哪个顶点来遍历?

它可以是A,C,D,B或A,B,C,D哪个是正确的?有没有规则?

2 个答案:

答案 0 :(得分:1)

没有规则。两个订单都同样正确。但是,有时教师会告诉您按特定顺序遍历节点,例如按字母顺序排列;在那种情况下,当然要做你的导师所说的。但是,如果没有明确的指令,您可以按照您喜欢的顺序迭代相邻的顶点。

答案 1 :(得分:1)

简答:否。

由于图形的顶点(通常)没有正确的或规范顺序,因此DFS算法也没有这样的顺序。

作为数据结构存储在计算机内存中的图形由于线性内存地址空间,总是具有一些顶点顺序。根据您在顶点上放置的标签/属性,您可以使用它们来建立明确的排序条件,例如:他们的字母或数字顺序。一般来说,这可能会导致更确定的结果,但不会使运行时受益。

根据数据结构,它的内存布局和目标架构算法将被执行,可能会有增加的顺序,例如遍历图形时的数据局部性,从而可以加速算法的执行。

根据图表模型的问题,特殊情况可能会有一些有益的排序。考虑一种情况,其中DFS用于搜索具有给定属性的某些顶点,然后在找到匹配的顶点时立即中止。如果找到这样一个顶点的概率可以分配给每个顶点,那么首先以最高概率遍历顶点显然是个好主意。