2014-02-09 25 views
1

我有几天的中期(模拟)考试,这是唯一的主题我似乎无法摆脱困境。例如,我不知道该怎么办这个问题图论 - 深度优先搜索算法(需要在某个点编程,但似乎无法理解)

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

我怎样才能知道哪些顶点以什么顺序参观?我在网上查找并找到有关DFS的信息,但是我没有看到我们正在做的DFS-CC和DFS-PROC。

+3

您需要咨询您的教授才能获得详细信息。我怀疑DFS-CC是“深度优先搜索来查找连接组件”,但我不知道DFS-PROC是什么。 – templatetypedef

回答

0

你一定要问你关于DFS-CC和DFS-PROC的含义的教授。我有一本书叫“有向图:理论,算法和应用”,由耶尔邦延森,格雷戈里Z.古京编写,并且它,我发现了以下定义:

DFS-PROC

希望这可以帮助。

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开始。其余的遍历遵循相同的模式。我希望你现在能够明白 - 如果不是问更具体的问题。

0

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