//为保证所有顶点都被排序,需遍历所有顶点 for (int i = 0; i < MAX_NUM; i++){ if (!visited[i]) DFS(G, i); }
voidDFS(Graph G, int v){ visited[v] = true; for (w = FirstNeighbor(G, v); w != -1; w = NextNeighbor(G, v, w)){ if (!visited[w]) DFS(G, w); } print(v); //输出v信息进行逆拓扑排序 }