Package edu.umd.cs.findbugs.graph
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 java.lang.Object
Algorithm to find strongly connected components in a graph. Based on algorithm in Cormen et. al., Introduction to Algorithms, p. 489.
-
-
Constructor Summary
Constructors Constructor Description StronglyConnectedComponents()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
findStronglyConnectedComponents(GraphType g, GraphToolkit<GraphType,EdgeType,VertexType> toolkit)
Find the strongly connected components in given graph.java.util.Iterator<SearchTree<VertexType>>
searchTreeIterator()
Returns an iterator over the search trees containing the vertices of each strongly connected component.java.util.Iterator<java.util.Set<VertexType>>
setIterator()
Returns an iterator over the sets of vertices of each strongly connected component.void
setVertexChooser(VertexChooser<VertexType> vertexChooser)
Specify a VertexChooser object to restrict which vertices are considered.
-
-
-
Method Detail
-
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 graphtoolkit
- a GraphToolkit, used to create temporary graphs used by the algorithm
-
searchTreeIterator
public java.util.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 java.util.Iterator<java.util.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
-
-