public class EulerianCycle extends Object
EulerianCycle
class represents a data type
for finding an Eulerian cycle or path in a graph.
An Eulerian cycle is a cycle (not necessarily simple) that
uses every edge in the graph exactly once.
This implementation uses a nonrecursive depthfirst search. The constructor takes Θ(E + V) time in the worst case, where E is the number of edges and V is the number of vertices Each instance method takes Θ(1) time. It uses Θ(E + V) extra space in the worst case (not including the graph).
To compute Eulerian paths in graphs, see EulerianPath
.
To compute Eulerian cycles and paths in digraphs, see
DirectedEulerianCycle
and DirectedEulerianPath
.
For additional documentation, see Section 4.1 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
Constructor and Description 

EulerianCycle(Graph G)
Computes an Eulerian cycle in the specified graph, if one exists.

Modifier and Type  Method and Description 

Iterable<Integer> 
cycle()
Returns the sequence of vertices on an Eulerian cycle.

boolean 
hasEulerianCycle()
Returns true if the graph has an Eulerian cycle.

static void 
main(String[] args)
Unit tests the
EulerianCycle data type. 
public EulerianCycle(Graph G)
G
 the graphpublic Iterable<Integer> cycle()
null
if no such cyclepublic boolean hasEulerianCycle()
true
if the graph has an Eulerian cycle;
false
otherwisepublic static void main(String[] args)
EulerianCycle
data type.args
 the commandline arguments