Class TarjanSimpleCycles<V,E>
java.lang.Object
org.jgrapht.alg.cycle.TarjanSimpleCycles<V,E>
- Type Parameters:
V- the vertex type.E- the edge type.
- All Implemented Interfaces:
DirectedSimpleCycles<V,E>
Find all simple cycles of a directed graph using the Tarjan's algorithm.
See:
R. Tarjan, Enumeration of the elementary circuits of a directed graph, SIAM J. Comput., 2 (1973),
pp. 211-216.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreate a simple cycle finder with an unspecified graph.TarjanSimpleCycles(Graph<V, E> graph) Create a simple cycle finder for the specified graph. -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanprivate voidvoidfindSimpleCycles(Consumer<List<V>> consumer) Find the simple cycles of the graph.getGraph()Get the graphgetRemoved(V v) private voidvoidSet the graphprivate IntegerMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface DirectedSimpleCycles
findSimpleCycles
-
Field Details
-
graph
-
cycleConsumer
-
marked
-
markedStack
-
pointStack
-
vToI
-
removed
-
-
Constructor Details
-
TarjanSimpleCycles
public TarjanSimpleCycles()Create a simple cycle finder with an unspecified graph. -
TarjanSimpleCycles
Create a simple cycle finder for the specified graph.- Parameters:
graph- - the DirectedGraph in which to find cycles.- Throws:
IllegalArgumentException- if the graph argument isnull.
-
-
Method Details
-
getGraph
-
setGraph
-
findSimpleCycles
Find the simple cycles of the graph.- Specified by:
findSimpleCyclesin interfaceDirectedSimpleCycles<V,E> - Parameters:
consumer- Consumer that will be called with each cycle found.
-
backtrack
-
initState
-
clearState
private void clearState() -
toI
-
getRemoved
-