图论 - 深度优先搜索算法(需要在某些时候对此进行编程,但似乎无法理解它)

时间:2014-02-09 17:58:23

标签: algorithm graph-theory depth-first-search

我在几天内进行了一次中期(模拟)考试,这是我唯一无法理解的话题。例如,我不知道如何做这个问题

http://imageshack.com/a/img513/9031/orbp.png

如何判断按哪种顺序访问哪些顶点?我在网上找到了有关DFS的信息,但我没看到我们正在做的DFS-CC和DFS-PROC。

3 个答案:

答案 0 :(得分:1)

DFS必须从某处开始,所以通过“G的顶点按自然顺序考虑”它从节点1开始。节点1附近有两个节点,即节点2和3.再次按照它选择的相同规则首先访问节点2。节点2连接到1,3,4和5.但是已经访问了1,因此它选择3.节点3连接到1,2和5.访问1和2都是,所以5.从5到4。

因此1,2,3,5,4。

现在已经访问了所有已连接的节点,因此该过程将再次以新节点启动。再次通过“以自然顺序考虑”意味着从6开始。遍历的其余部分遵循相同的模式。我希望你现在能得到这个想法 - 如果不是问一个更具体的问题。

答案 1 :(得分:0)

你一定要问教授DFS-CC和DFS-PROC的含义。我有一本名为“Digraphs:Theory,Algorithms and Applications”的书,由JørgenBang-Jensen,Gregory Z. Gutin编写,其中我找到了以下定义:

DFS-PROC

希望这可能有所帮助。

答案 2 :(得分:0)

在程序中,您可以使用方阵来表示连接的顶点。行和列表示顶点。零表示未连接,1表示连接。例如,在图G中,第1行第3列为1但第1列第7列为0.对于图G,矩阵中将存在对称性,因为每个连接具有两个方向。但是你可能有一个更复杂的图形,某些路径只朝一个方向发展。