public BreadthFirstDirectedPaths(Digraph G, Iterable sources) public BreadthFirstDirectedPaths(Digraph G, int s) //preprocessing public int distTo(int v) //distance of shortest path from v->source public boolean hasPathTo(int v) //is there a path from v->source? public Iterable pathTo(int v) //path from v->source public DirectedDFS(Digraph G, Iterable sources) //preprocessing public DirectedDFS(Digraph G, int s) //preprocessing if single source public boolean marked(int v) //is v connected to source(s) public DepthFirstDirectedPaths(Digraph G, int s) //preprocessing public boolean hasPathTo(int v) //is v connected to source? public Iterable pathTo(int v) //path from v to source public DirectedCycle(Digraph G) //preprocessing public boolean hasCycle() //does graph have a cycle public Iterable cycle() //returns *A* cycle public DepthFirstOrder(Digraph G) //preprocessing public DepthFirstOrder(EdgeWeightedDigraph G) //for next week public int pre(int v) //returns preorder of v public int post(int v) //returns postorder of v public Iterable post() //returns vertices in postorder public Iterable pre() //returns vertices in preorder public Iterable reversePost() //returns vertices in rev. postorder public KosarajuSharirSCC(Digraph G) //preprocessing public int count() //number of strongly connected components public boolean stronglyConnected(int v, int w) //v and w strongly connected? public int id(int v) //id of strong component containing v