谁能简单地告诉我,深度优先遍历如何使用回溯?我努力理解,因此可以举一个例子。
谢谢。
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没有孩子可以探索了,这是根本。这意味着我们已经遍历了! :)