Package edu.princeton.cs.algs4
Class EulerianCycle
 Object

 edu.princeton.cs.algs4.EulerianCycle

public class EulerianCycle extends Object
TheEulerianCycle
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, seeDirectedEulerianCycle
andDirectedEulerianPath
.For additional documentation, see Section 4.1 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
 Author:
 Robert Sedgewick, Kevin Wayne, Nate Liu


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

Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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 theEulerianCycle
data type.



Constructor Detail

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


Method Detail

cycle
public Iterable<Integer> cycle()
Returns the sequence of vertices on an Eulerian cycle. Returns:
 the sequence of vertices on an Eulerian cycle;
null
if no such cycle

hasEulerianCycle
public boolean hasEulerianCycle()
Returns true if the graph has an Eulerian cycle. Returns:
true
if the graph has an Eulerian cycle;false
otherwise

main
public static void main(String[] args)
Unit tests theEulerianCycle
data type. Parameters:
args
 the commandline arguments

