V
- the graph vertex typeE
- the graph edge typepublic class ConnectivityInspector<V,E> extends Object implements GraphListener<V,E>
KosarajuStrongConnectivityInspector
instead.
The inspector methods work in a lazy fashion: no computation is performed unless immediately necessary. Computation are done once and results and cached within this class for future need.
The inspector is also a GraphListener
. If added as a listener to the
inspected graph, the inspector will amend internal cached results instead of recomputing them. It
is efficient when a few modifications are applied to a large graph. If many modifications are
expected it will not be efficient due to added overhead on graph update operations. If inspector
is added as listener to a graph other than the one it inspects, results are undefined.
Constructor and Description |
---|
ConnectivityInspector(DirectedGraph<V,E> g)
Creates a connectivity inspector for the specified directed graph.
|
ConnectivityInspector(UndirectedGraph<V,E> g)
Creates a connectivity inspector for the specified undirected graph.
|
Modifier and Type | Method and Description |
---|---|
Set<V> |
connectedSetOf(V vertex)
Returns a set of all vertices that are in the maximally connected component together with the
specified vertex.
|
List<Set<V>> |
connectedSets()
Returns a list of
Set s, where each set contains all vertices that are in the
same maximally connected component. |
void |
edgeAdded(GraphEdgeChangeEvent<V,E> e)
Notifies that an edge has been added to the graph.
|
void |
edgeRemoved(GraphEdgeChangeEvent<V,E> e)
Notifies that an edge has been removed from the graph.
|
boolean |
isGraphConnected()
Test if the inspected graph is connected.
|
boolean |
pathExists(V sourceVertex,
V targetVertex)
Tests if there is a path from the specified source vertex to the specified target vertices.
|
void |
vertexAdded(GraphVertexChangeEvent<V> e)
Notifies that a vertex has been added to the graph.
|
void |
vertexRemoved(GraphVertexChangeEvent<V> e)
Notifies that a vertex has been removed from the graph.
|
public ConnectivityInspector(UndirectedGraph<V,E> g)
g
- the graph for which a connectivity inspector to be created.public ConnectivityInspector(DirectedGraph<V,E> g)
g
- the graph for which a connectivity inspector to be created.public boolean isGraphConnected()
true
if and only if inspected graph is connected.public Set<V> connectedSetOf(V vertex)
vertex
- the vertex for which the connected set to be returned.public List<Set<V>> connectedSets()
Set
s, where each set contains all vertices that are in the
same maximally connected component. All graph vertices occur in exactly one set. For more on
maximally connected component, see
http://www.nist.gov/dads/HTML/maximallyConnectedComponent.html.Set
s, where each set contains all vertices that are
in the same maximally connected component.public void edgeAdded(GraphEdgeChangeEvent<V,E> e)
GraphListener
edgeAdded
in interface GraphListener<V,E>
e
- the edge event.GraphListener.edgeAdded(GraphEdgeChangeEvent)
public void edgeRemoved(GraphEdgeChangeEvent<V,E> e)
GraphListener
edgeRemoved
in interface GraphListener<V,E>
e
- the edge event.GraphListener.edgeRemoved(GraphEdgeChangeEvent)
public boolean pathExists(V sourceVertex, V targetVertex)
Note: Future versions of this method might not ignore edge directions for directed graphs.
sourceVertex
- one end of the path.targetVertex
- another end of the path.true
if and only if there is a path from the source vertex to the target
vertex.public void vertexAdded(GraphVertexChangeEvent<V> e)
VertexSetListener
vertexAdded
in interface VertexSetListener<V>
e
- the vertex event.VertexSetListener.vertexAdded(GraphVertexChangeEvent)
public void vertexRemoved(GraphVertexChangeEvent<V> e)
VertexSetListener
vertexRemoved
in interface VertexSetListener<V>
e
- the vertex event.VertexSetListener.vertexRemoved(GraphVertexChangeEvent)
Copyright © 2016. All rights reserved.