void DFSTraverse(Graph G){
//对图G进行深度优先遍历,访问函数为visit()
for (v=0;v<G.vexnum;++v)
visited[v] = FALSE;
//初始化已访问标记数据
for (v=0;v<G.vexnum;++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的尚未访问的邻接顶点
网友评论