bool visited[MAX_VERTEX_NUM]; void DFSTraverse(Graph G) { for (v = 0; v < G.vernum; ++v) visited[v] = FALSE; for (v = 0; v < G.vexnum; ++v) if (!visited[v]) DFS(G, v); } void DFS(Graph G,int v) { visit(v); visited[v] = TRUE; for (w = FirstNeighbor(G, v); w >= 0; w = NextNeighbor(G, v, w)) if (!visited[w]) { DFS(G, w); } }