|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg._3pq.jgrapht.traverse.AbstractGraphIterator
org._3pq.jgrapht.traverse.CrossComponentIterator
org._3pq.jgrapht.traverse.ClosestFirstIterator
A closest-first iterator for a directed or undirected graph. For this iterator to work correctly the graph must not be modified during iteration. Currently there are no means to ensure that, nor to fail-fast. The results of such modifications are undefined.
The metric for closest here is the path length from a start vertex. Edge.getWeight() is summed to calculate path length. Negative edge weights will result in an IllegalArgumentException. Optionally, path length may be bounded by a finite radius.
Constructor Summary | |
ClosestFirstIterator(Graph g)
Creates a new closest-first iterator for the specified graph. |
|
ClosestFirstIterator(Graph g,
java.lang.Object startVertex)
Creates a new closest-first iterator for the specified graph. |
|
ClosestFirstIterator(Graph g,
java.lang.Object startVertex,
double radius)
Creates a new radius-bounded closest-first iterator for the specified graph. |
Method Summary | |
protected void |
encounterVertex(java.lang.Object vertex,
Edge edge)
Update data structures the first time we see a vertex. |
protected void |
encounterVertexAgain(java.lang.Object vertex,
Edge edge)
Override superclass. |
double |
getShortestPathLength(java.lang.Object vertex)
Get the length of the shortest path known to the given vertex. |
Edge |
getSpanningTreeEdge(java.lang.Object vertex)
Get the spanning tree edge reaching a vertex which has been seen already in this traversal. |
protected boolean |
isConnectedComponentExhausted()
Returns true if there are no more uniterated vertices in the currently iterated connected component; false otherwise. |
protected java.lang.Object |
provideNextVertex()
Returns the vertex to be returned in the following call to the iterator next method. |
void |
setCrossComponentTraversal(boolean crossComponentTraversal)
Sets the cross component traversal flag - indicates whether to traverse the graph across connected components. |
Methods inherited from class org._3pq.jgrapht.traverse.CrossComponentIterator |
getSeenData, hasNext, isSeenVertex, next, putSeenData |
Methods inherited from class org._3pq.jgrapht.traverse.AbstractGraphIterator |
addTraversalListener, fireConnectedComponentFinished, fireConnectedComponentStarted, fireEdgeTraversed, fireVertexTraversed, isCrossComponentTraversal, isReuseEvents, remove, removeTraversalListener, setReuseEvents |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ClosestFirstIterator(Graph g)
g
- the graph to be iterated.public ClosestFirstIterator(Graph g, java.lang.Object startVertex)
null
, iteration will start at an arbitrary
vertex and will not be limited, that is, will be able to traverse all
the graph.
g
- the graph to be iterated.startVertex
- the vertex iteration to be started.public ClosestFirstIterator(Graph g, java.lang.Object startVertex, double radius)
null
.
g
- the graph to be iterated.startVertex
- the vertex iteration to be started.radius
- limit on path length, or Double.POSITIVE_INFINITY for
unbounded search.Method Detail |
public void setCrossComponentTraversal(boolean crossComponentTraversal)
AbstractGraphIterator
setCrossComponentTraversal
in class AbstractGraphIterator
crossComponentTraversal
- if true
traverses across
connected components.public double getShortestPathLength(java.lang.Object vertex)
vertex
- vertex being sought from start vertex
public Edge getSpanningTreeEdge(java.lang.Object vertex)
vertex
- the spanned vertex.
protected boolean isConnectedComponentExhausted()
CrossComponentIterator
isConnectedComponentExhausted
in class CrossComponentIterator
CrossComponentIterator.isConnectedComponentExhausted()
protected void encounterVertex(java.lang.Object vertex, Edge edge)
CrossComponentIterator
encounterVertex
in class CrossComponentIterator
vertex
- the vertex encounterededge
- the edge via which the vertex was encountered, or null if
the vertex is a starting pointCrossComponentIterator.encounterVertex(java.lang.Object,
org._3pq.jgrapht.Edge)
protected void encounterVertexAgain(java.lang.Object vertex, Edge edge)
encounterVertexAgain
in class CrossComponentIterator
vertex
- the vertex re-encounterededge
- the edge via which the vertex was re-encounteredprotected java.lang.Object provideNextVertex()
CrossComponentIterator
next
method.
provideNextVertex
in class CrossComponentIterator
CrossComponentIterator.provideNextVertex()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |