org.jgrapht.alg.cycle

## Class SzwarcfiterLauerSimpleCycles<V,E>

- java.lang.Object
- - org.jgrapht.alg.cycle.SzwarcfiterLauerSimpleCycles<V,E>

- Type Parameters:
    `V` - the vertex type.
    `E` - the edge type.
  All Implemented Interfaces:
    DirectedSimpleCycles<V,E>

      public class SzwarcfiterLauerSimpleCycles<V,E>
      extends Object
      implements DirectedSimpleCycles<V,E>

  Find all simple cycles of a directed graph using the Schwarcfiter and Lauer's algorithm.

  See:
  J.L.Szwarcfiter and P.E.Lauer, Finding the elementary cycles of a directed graph in O(n + m) per cycle, Technical Report Series, #60, May 1974, Univ. of Newcastle upon Tyne, Newcastle upon Tyne, England.

  Author:
    Nikolay Ognyanov

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SzwarcfiterLauerSimpleCycles()` Create a simple cycle finder with an unspecified graph.
    `SzwarcfiterLauerSimpleCycles(DirectedGraph<V,E> graph)` Create a simple cycle finder for the specified graph.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `List<List<V>>` | `findSimpleCycles()` Finds the simple cycles of the graph. Note that the full algorithm is executed on every call since the graph may have changed between calls.
    `DirectedGraph<V,E>` | `getGraph()` Returns the graph on which the simple cycle search algorithm is executed by this object.
    `void` | `setGraph(DirectedGraph<V,E> graph)` Sets the graph on which the simple cycle search algorithm is executed by this object.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SzwarcfiterLauerSimpleCycles

          public SzwarcfiterLauerSimpleCycles()

      Create a simple cycle finder with an unspecified graph.

    - #### SzwarcfiterLauerSimpleCycles

          public SzwarcfiterLauerSimpleCycles(DirectedGraph<V,E> graph)

      Create a simple cycle finder for the specified graph.
      Parameters:
        `graph` - - the DirectedGraph in which to find cycles.
      Throws:
        `IllegalArgumentException` - if the graph argument is `null`.

  - ### Method Detail

    - #### getGraph

          public DirectedGraph<V,E> getGraph()

      Returns the graph on which the simple cycle search algorithm is executed by this object.
      Specified by:
        `getGraph` in interface `DirectedSimpleCycles<V,E>`
      Returns:
        The graph.

    - #### setGraph

          public void setGraph(DirectedGraph<V,E> graph)

      Sets the graph on which the simple cycle search algorithm is executed by this object.
      Specified by:
        `setGraph` in interface `DirectedSimpleCycles<V,E>`
      Parameters:
        `graph` - the graph.

    - #### findSimpleCycles

          public List<List<V>> findSimpleCycles()

      Finds the simple cycles of the graph.
      Note that the full algorithm is executed on every call since the graph may have changed between calls.
      Specified by:
        `findSimpleCycles` in interface `DirectedSimpleCycles<V,E>`
      Returns:
        The list of all simple cycles. Possibly empty but never `null`.

Copyright © 2016. All rights reserved.