dfs
void dfs(Graph g) { int i; visited = calloc(nV(g),sizeof(int)); order = 1; while (order < nV(g)) { Vertex v; for (v = 0; v < nV(g); v++) if (visited[v] == -1) break; dfsR(g, v); } }