深度优先搜索(Depth-First-Search)

void DFSTraverse(Graph G){

//对图G进行深度优先遍历,访问函数为visit()

for (v=0;v

visited[v] = FALSE;

//初始化已访问标记数据

for (v=0;v

//本代码中是从v=0开始遍历

if(!visited[v])

DFS(G,v);

}


void DFS(Graph G,int v){

//从顶点v出发,采用递归思想,深度优先遍历图G

visit(v);

//访问顶点v

visited[v] = TRUE;

//设已访问标记

for(w=FirstNeighbor(G,v);w>=0;w=NextNeighbor(G,v,w))

if(!visited[w]){

//w为u的尚未访问的邻接顶点

DFS(G,w);

}

}

你可能感兴趣的:(深度优先搜索(Depth-First-Search))