edu.princeton.cs.algs4
Class DirectedEulerianCycle
- java.lang.Object
-
- edu.princeton.cs.algs4.DirectedEulerianCycle
-
public class DirectedEulerianCycle extends java.lang.ObjectTheDirectedEulerianCycleclass represents a data type for finding an Eulerian cycle or path in a digraph. An Eulerian cycle is a cycle (not necessarily simple) that uses every edge in the digraph exactly once.This implementation uses a nonrecursive depth-first search. The constructor runs in O(E + V) time, and uses O(V) extra space, where E is the number of edges and V the number of vertices All other methods take O(1) time.
To compute Eulerian paths in digraphs, see
DirectedEulerianPath. 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.
-
-
Constructor Summary
Constructors Constructor and Description DirectedEulerianCycle(Digraph G)Computes an Eulerian cycle in the specified digraph, if one exists.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.lang.Iterable<java.lang.Integer>cycle()Returns the sequence of vertices on an Eulerian cycle.booleanhasEulerianCycle()Returns true if the digraph has an Eulerian cycle.static voidmain(java.lang.String[] args)Unit tests theDirectedEulerianCycledata type.
-
-
-
Constructor Detail
-
DirectedEulerianCycle
public DirectedEulerianCycle(Digraph G)
Computes an Eulerian cycle in the specified digraph, if one exists.- Parameters:
G- the digraph
-
-
Method Detail
-
cycle
public java.lang.Iterable<java.lang.Integer> cycle()
Returns the sequence of vertices on an Eulerian cycle.- Returns:
- the sequence of vertices on an Eulerian cycle;
nullif no such cycle
-
hasEulerianCycle
public boolean hasEulerianCycle()
Returns true if the digraph has an Eulerian cycle.- Returns:
trueif the digraph has an Eulerian cycle;falseotherwise
-
main
public static void main(java.lang.String[] args)
Unit tests theDirectedEulerianCycledata type.- Parameters:
args- the command-line arguments
-
-
DataMelt 3.0 © DataMelt by jWork.ORG