在具有返回边的图上进行广度和深度优先搜索

Breadth and depth first search on a graph with returning edges

我确实了解深度和广度优先搜索,但这张图让我感到困惑,因为图中有些节点指向前面的节点。

所以让我们暂时假设 N 是一个目标状态,然后使用深度优先搜索我们会得到

A B E J K L F G M N

所以我们这样正确吗?我不重复 A 因为它是在正确的之前访问过的。

使用广度优先搜索,我会逐级搜索,所以我会

A B C D E F G H I J K L M N

这是正确的吗?

如果我们将目标状态更改为 P

那么DFS会给我们A B E J K L F G M N H O P

BFS 会给我们 A B C D E F G H I J K L M N O P

我觉得我做对了,我只是不确定我是否正确,因为这个图中有返回边。所以我只想有人确认我在正确的轨道上。

这对我来说是正确的。当指向一个已经在你的结果集中的节点时,它不应该被添加到结果集中第二次。