图的两种遍历算法——BFS和DFS

一、BFS,也称广度优先搜索,和二叉树的层次遍历算法类似

//BFS
bool visited[MaxVertexNum];
void BFSTraverse(Graph G){
    for(i=0;i=0;w=NextNeighbor(G,v,w))
        if(!visited[w]){
            visit(w);
            visited[w]=TRUE;
            EnQueue(Q,w);
        }
    }
}

二、DFS,也称深度优先搜索,类似于二叉树的先序遍历

//DFS
bool visited[MaxVertexNum];
void DFSTraverse(Graph G){
    for(v=0;v=0;w=NextNeighbor(G,v,w))
        if(!visited[w]){
            DFS(G,w);
        }
}

 

你可能感兴趣的:(数据结构)