Package edu.princeton.cs.algs4
Class DirectedDFS
- Object
-
- edu.princeton.cs.algs4.DirectedDFS
-
public class DirectedDFS extends Object
TheDirectedDFSclass represents a data type for determining the vertices reachable from a given source vertex s (or set of source vertices) in a digraph. For versions that find the paths, seeDepthFirstDirectedPathsandBreadthFirstDirectedPaths.This implementation uses depth-first search. The constructor takes time proportional to V + E (in the worst case), where V is the number of vertices and E is the number of edges. Each instance method takes Θ(1) time. It uses Θ(V) extra space (not including the digraph). See
NonrecursiveDirectedDFSfor a nonrecursive implementation.For additional documentation, see Section 4.2 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
- Author:
- Robert Sedgewick, Kevin Wayne
-
-
Constructor Summary
Constructors Constructor Description DirectedDFS(Digraph digraph, int s)Computes the vertices in a digraph that are reachable from a source vertex.DirectedDFS(Digraph digraph, Iterable<Integer> sources)Computes the vertices in a digraph that are connected to any of a set of source vertices.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcount()Returns the number of vertices reachable from the source vertex (or source vertices).static voidmain(String[] args)Unit tests theDirectedDFSdata type.booleanmarked(int v)Is there a directed path from the source vertex (or any of the source vertices) and vertexv?
-
-
-
Constructor Detail
-
DirectedDFS
public DirectedDFS(Digraph digraph, int s)
Computes the vertices in a digraph that are reachable from a source vertex.- Parameters:
digraph- the digraphs- the source vertex- Throws:
IllegalArgumentException- unless0 <= s < V
-
DirectedDFS
public DirectedDFS(Digraph digraph, Iterable<Integer> sources)
Computes the vertices in a digraph that are connected to any of a set of source vertices.- Parameters:
digraph- the graphsources- the source vertices- Throws:
IllegalArgumentException- ifsourcesisnullIllegalArgumentException- ifsourcescontains no verticesIllegalArgumentException- unless0 <= s < Vfor each vertexsinsources
-
-
Method Detail
-
marked
public boolean marked(int v)
Is there a directed path from the source vertex (or any of the source vertices) and vertexv?- Parameters:
v- the vertex- Returns:
trueif there is a directed path,falseotherwise- Throws:
IllegalArgumentException- unless0 <= v < V
-
count
public int count()
Returns the number of vertices reachable from the source vertex (or source vertices).- Returns:
- the number of vertices reachable from the source vertex (or source vertices)
-
main
public static void main(String[] args)
Unit tests theDirectedDFSdata type.- Parameters:
args- the command-line arguments
-
-