Class StronglyConnectedComponents<GraphType extends Graph<EdgeType,VertexType>,EdgeType extends GraphEdge<EdgeType,VertexType>,VertexType extends GraphVertex<VertexType>>

java.lang.Object
edu.umd.cs.findbugs.graph.StronglyConnectedComponents<GraphType,EdgeType,VertexType>

public class StronglyConnectedComponents<GraphType extends Graph<EdgeType,VertexType>,EdgeType extends GraphEdge<EdgeType,VertexType>,VertexType extends GraphVertex<VertexType>> extends Object
Algorithm to find strongly connected components in a graph. Based on algorithm in Cormen et. al., Introduction to Algorithms, p. 489.
  • Constructor Details

    • StronglyConnectedComponents

      public StronglyConnectedComponents()
      Constructor.
  • Method Details

    • setVertexChooser

      public void setVertexChooser(VertexChooser<VertexType> vertexChooser)
      Specify a VertexChooser object to restrict which vertices are considered. This is useful if you only want to find strongly connected components among a particular category of vertices.
    • findStronglyConnectedComponents

      public void findStronglyConnectedComponents(GraphType g, GraphToolkit<GraphType,EdgeType,VertexType> toolkit)
      Find the strongly connected components in given graph.
      Parameters:
      g - the graph
      toolkit - a GraphToolkit, used to create temporary graphs used by the algorithm
    • searchTreeIterator

      public Iterator<SearchTree<VertexType>> searchTreeIterator()
      Returns an iterator over the search trees containing the vertices of each strongly connected component.
      Returns:
      an Iterator over a sequence of SearchTree objects
    • setIterator

      public Iterator<Set<VertexType>> setIterator()
      Returns an iterator over the sets of vertices of each strongly connected component.
      Returns:
      an Iterator over a sequence of Set objects