Package edu.princeton.cs.algs4
Class DirectedEulerianPath
- Object
-
- edu.princeton.cs.algs4.DirectedEulerianPath
-
public class DirectedEulerianPath extends Object
TheDirectedEulerianPathclass represents a data type for finding an Eulerian path in a digraph. An Eulerian path is a path (not necessarily simple) that uses every edge in the digraph exactly once.This implementation uses a nonrecursive depth-first search. The constructor take Θ(E + V) time in the worst case, where E is the number of edges and V is the number of vertices. It uses Θ(V) extra space (not including the digraph).
To compute Eulerian cycles in digraphs, see
DirectedEulerianCycle. To compute Eulerian cycles and paths in undirected graphs, seeEulerianCycleandEulerianPath.For additional documentation, see Section 4.2 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
- Author:
- Robert Sedgewick, Kevin Wayne, Nate Liu
-
-
Constructor Summary
Constructors Constructor Description DirectedEulerianPath(Digraph digraph)Computes an Eulerian path in the specified digraph, if one exists.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanhasEulerianPath()Returns true if the digraph has an Eulerian path.static voidmain(String[] args)Unit tests theDirectedEulerianPathdata type.Iterable<Integer>path()Returns the sequence of vertices on an Eulerian path.
-
-
-
Constructor Detail
-
DirectedEulerianPath
public DirectedEulerianPath(Digraph digraph)
Computes an Eulerian path in the specified digraph, if one exists.- Parameters:
digraph- the digraph
-
-
Method Detail
-
path
public Iterable<Integer> path()
Returns the sequence of vertices on an Eulerian path.- Returns:
- the sequence of vertices on an Eulerian path;
nullif no such path
-
hasEulerianPath
public boolean hasEulerianPath()
Returns true if the digraph has an Eulerian path.- Returns:
trueif the digraph has an Eulerian path;falseotherwise
-
main
public static void main(String[] args)
Unit tests theDirectedEulerianPathdata type.- Parameters:
args- the command-line arguments
-
-