对图论dfs的思考。

图论dfs可以说主宰了图论的大部分题目,所以对于他的理解非常重要:

深度优先遍历就如他的名字所说:只要可能,就在图中尽量深入,深度优先搜索总是对最近被发现的点最近发现的节点v出发进行搜索。直到该点的出发边都被发现为止,搜索则回到前驱节点,(v是由这个点发现的),在搜索其前驱节点的边,重复该过程直到源点所有出发边都被发现完,如果有节点没有被发现,则以这个点为开头,继续搜索。

在进行深度优先遍历时,我们对其节点进行涂色,开始,所有点都为白色,然后一旦被发现,即进栈,变成灰色,然后经过遍历,当其所有边都访问完毕时,退栈,变成灰色。

还有,在进行遍历时,我们要对图的每个节点盖上时间戳,每个节点有两个时间戳,v.d表示其变成灰色的时间,及进栈的时间,v.f表示其变成黑色的时间,即出栈的时间。这两个时间戳提供了图结构的重要信息,非常重要,可以帮助推断图的行为。

很显然,如果一个图有n个点,那么时间戳一定为1——2n之间的整数。且u.d<u.v;

 

 

 

 

 

posted @ 2017-09-27 08:26  star_eternal  阅读(253)  评论(0编辑  收藏  举报