#include #include #include #include "Graph.h" #include "GraphPrivate.h" static void dfsRec(Graph g, Vertex v, bool *visited); void dfs(Graph g, Vertex src) { bool *visited = calloc(g->nV, sizeof(bool)); printf("DFS visit order: "); dfsRec(g, src, visited); printf("\n"); free(visited); } static void dfsRec(Graph g, Vertex v, bool *visited) { printf("%d ", v); visited[v] = true; struct adjNode *curr = g->edges[v]; for (; curr != NULL; curr = curr->next) { Vertex w = curr->v; if (!visited[w]) { dfsRec(g, w, visited); } } }