|
|||||||||
| 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
public class 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 AbstractGraphIteratorcrossComponentTraversal - 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 CrossComponentIteratorCrossComponentIterator.isConnectedComponentExhausted()
protected void encounterVertex(java.lang.Object vertex,
Edge edge)
CrossComponentIterator
encounterVertex in class CrossComponentIteratorvertex - 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 CrossComponentIteratorvertex - the vertex re-encounterededge - the edge via which the vertex was re-encounteredprotected java.lang.Object provideNextVertex()
CrossComponentIteratornext method.
provideNextVertex in class CrossComponentIteratorCrossComponentIterator.provideNextVertex()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||