Class NonrecursiveDirectedDFS


  • public class NonrecursiveDirectedDFS
    extends Object
    The NonrecursiveDirectedDFS class represents a data type for finding the vertices reachable from a source vertex s in the digraph.

    This implementation uses a nonrecursive version of depth-first search with an explicit stack. The constructor takes Θ(V + E) time 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).

    For additional documentation, see Section 4.2 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.

    Author:
    Robert Sedgewick, Kevin Wayne
    • Constructor Detail

      • NonrecursiveDirectedDFS

        public NonrecursiveDirectedDFS​(Digraph G,
                                       int s)
        Computes the vertices reachable from the source vertex s in the digraph G.
        Parameters:
        G - the digraph
        s - the source vertex
        Throws:
        IllegalArgumentException - unless 0 <= s < V
    • Method Detail

      • marked

        public boolean marked​(int v)
        Is vertex v reachable from the source vertex s?
        Parameters:
        v - the vertex
        Returns:
        true if vertex v is reachable from the source vertex s, and false otherwise
        Throws:
        IllegalArgumentException - unless 0 <= v < V
      • main

        public static void main​(String[] args)
        Unit tests the NonrecursiveDirectedDFS data type.
        Parameters:
        args - the command-line arguments