如何在深度优先遍历中使用回溯?

问题描述 投票:0回答:1

谁能简单地告诉我,深度优先遍历如何使用回溯?我努力理解,因此可以举一个例子。

谢谢。

depth-first-search backtracking
1个回答
0
投票

1。 A-> B(picture中为蓝色)

B有孩子!好的,我们去那里。

2。 B-> D(picture中的绿色)

D有2个孩子!好的,让我们先离开。

3。 D-> E(picture中的紫色)

嗯,E没有孩子!这是一个死胡同。这意味着我们需要backtrack一级(回到“上”至D),看看是否还有其他可搜索的路径。

是的-D还有另一个未开发的孩子。让我们去那儿。

4。 D-> F(在picture中为粉红色)

F没有孩子!这是另一个死胡同,让我们backtrack

一个级别(至D的“上”),看看是否还有其他搜索路径。

没有-D没有孩子了。让我们backtrack达到另一个级别(“升至B”)。

否-B没有孩子了。让我们backtrack进入另一个层次。

是的-A有另一个未开发的孩子!让我们去那儿。

5。 A-> C(picture中的黄色)

C没有孩子。让我们backtrack

进入另一个层次。

否-A没有孩子可以探索了,这是根本。这意味着我们已经遍历了! :)

© www.soinside.com 2019 - 2024. All rights reserved.