implementation of http://en.wikipedia.org/wiki/tarjan%e2%80%99s_strongly_connected_components_algorithm used to find cycles in the graph . concode_field_sep Set<T> nodes concode_elem_sep Map<S,Integer> lowlinks concode_elem_sep Map<S,Integer> indexes concode_elem_sep HashMultimap<T,T> incomingEdges concode_elem_sep int index concode_elem_sep Set<Set<S>> stronglyConnectedComponents concode_elem_sep HashMultimap<T,T> outgoingEdges concode_elem_sep Deque<S> nodeStack concode_elem_sep MutableDirectedGraph<S> graph concode_field_sep Iterable<T> getOutgoingNodesFor concode_elem_sep ImmutableSetMultimap<T,T> createImmutableCopyOfOutgoingEdges concode_elem_sep ImmutableSetMultimap<T,T> createImmutableCopyOfIncomingEdges concode_elem_sep boolean containsEdge concode_elem_sep boolean addNode concode_elem_sep Set<T> getNodes concode_elem_sep boolean isAcyclic concode_elem_sep Iterable<T> getNodesWithNoIncomingEdges concode_elem_sep Set<Set<S>> findStronglyConnectedComponents concode_elem_sep void removeEdge concode_elem_sep int getNodeCount concode_elem_sep ImmutableSet<ImmutableSet<T>> findCycles concode_elem_sep Iterable<T> getNodesWithNoOutgoingEdges concode_elem_sep boolean hasIncomingEdges concode_elem_sep ImmutableSet<T> createImmutableCopyOfNodes concode_elem_sep boolean containsNode concode_elem_sep void addEdge concode_elem_sep Iterable<T> getIncomingNodesFor concode_elem_sep int getEdgeCount concode_elem_sep boolean removeNode concode_elem_sep void doStrongConnect
Set < Set < T >> function ( ) { Tarjan < T > loc0 = new Tarjan < T > ( this ) ; return loc0 . findStronglyConnectedComponents ( ) ; }