博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

图的深度优先搜索

Posted on 2011-10-12 17:07  天地玄黄  阅读(272)  评论(0)    收藏  举报
算法 DepthFirstSearch(v, visited[])
    // 以序号为v的顶点出发,深度优先遍历图
    // visited[] 是一个辅助数组,用来记录哪些节点已经被访问
DFS1 [打印当前节点]
    PRINT(v).
    visited[v] <- 1.
    
DFS2 [获取当前节点的第一个相邻节点]
    w <- GetFirstNeighbor(v).
    
DFS3 [对当前节点的所有相邻节点,递归调用DFS方法]
    WHILE w != -1 DO 
        ( IF visited[w] == 0 THEN ( DepthFirstSearch(w, visited[]).
                                    w <- GetNextNeighbor(v, w). )
        )