Depth First-Search如何访问节点?

时间:2017-12-15 18:57:24

标签: algorithm depth-first-search breadth-first-search a-star

算法可以第二次出现在节点上,即可能有两条到该节点的路径。算法需要知道哪条路径更短。

当最佳优先搜索到达之前访问过的节点时,上次访问可能有更长的路径。发生这种情况时,打开和关闭列表需要更新。 A *搜索不会发生这种情况。

问题:DFS会发生这种情况吗?

答案是肯定的,但我认为不是。为什么是的?我认为一旦访问了一个节点,就不会再回到它了。

2 个答案:

答案 0 :(得分:3)

DFS策略将在找到节点的路径时多次访问节点。它不会继续从该节点访问,但它会注册访问本身。这对于DFS edge classification至关重要。

例如,考虑在此图表上运行DFS:

Graph

当您第一次到达节点C时,路径为A-B-C。当您第二次到达C时,路径为A-C,这会更短。

答案 1 :(得分:3)

如果您有这样的图表

A
|\
B \
|  E
C /
|/
D

并从深度开始遍历,从左到右,将按顺序访问以下路径:

A
AB
ABC
ABCD
AE
AED

你看,D的第一次访问是在比第二次访问(AED)更长的路径(ABCD)上。