package Graph;
import java.util.*;
public class DirectedDFS {
private boolean[] visited;
private int[] pathTo;
private int start;
public DirectedDFS(DirectedGraph g, int s) {
start = s;
visited = new boolean[g.V()];
pathTo = new int[g.V()];
dfs(g, s);
pathTo[s] = s;
}
public void dfs(DirectedGraph g, int v) {
visited[v] = true;
for (int w : g.adj(v)) {
if (!visited[w]) {
pathTo[w] = v;
dfs(g, w);
}
}
}
public boolean hasPathTo(int v) {
return visited[v];
}
public Iterable