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 boolean
private void
void
findSimpleCycles
(Consumer<List<V>> consumer) Find the simple cycles of the graph.getGraph()
Get the graphgetRemoved
(V v) private void
void
Set the graphprivate Integer
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.jgrapht.alg.cycle.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
Get the graph- Returns:
- graph
-
setGraph
Set the graph- Parameters:
graph
- graph
-
findSimpleCycles
Find the simple cycles of the graph.- Specified by:
findSimpleCycles
in interfaceDirectedSimpleCycles<V,
E> - Parameters:
consumer
- Consumer that will be called with each cycle found.
-
backtrack
-
initState
-
clearState
private void clearState() -
toI
-
getRemoved
-