org._3pq.jgrapht.traverse
Class BreadthFirstIterator
java.lang.Object
|
+--org._3pq.jgrapht.traverse.AbstractGraphIterator
|
+--org._3pq.jgrapht.traverse.CrossComponentIterator
|
+--org._3pq.jgrapht.traverse.BreadthFirstIterator
- All Implemented Interfaces:
- GraphIterator, java.util.Iterator
- public class BreadthFirstIterator
- extends CrossComponentIterator
A breadth-first iterator for a directed and an 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.
- Since:
- Jul 19, 2003
- Author:
- Barak Naveh
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)
Called whenever we re-encounter a vertex. |
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. |
Methods inherited from class org._3pq.jgrapht.traverse.AbstractGraphIterator |
addTraversalListener, fireConnectedComponentFinished, fireConnectedComponentStarted, fireEdgeTraversed, fireVertexTraversed, isCrossComponentTraversal, isReuseEvents, remove, removeTraversalListener, setCrossComponentTraversal, setReuseEvents |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BreadthFirstIterator
public BreadthFirstIterator(Graph g)
- Creates a new breadth-first iterator for the specified graph.
- Parameters:
g
- the graph to be iterated.
BreadthFirstIterator
public BreadthFirstIterator(Graph g,
java.lang.Object startVertex)
- Creates a new breadth-first iterator for the specified graph. Iteration
will start at the specified start vertex and will be limited to the
connected component that includes that vertex. If the specified start
vertex is
null
, iteration will start at an arbitrary
vertex and will not be limited, that is, will be able to traverse all
the graph.
- Parameters:
g
- the graph to be iterated.startVertex
- the vertex iteration to be started.
isConnectedComponentExhausted
protected boolean isConnectedComponentExhausted()
- Description copied from class:
CrossComponentIterator
- Returns true if there are no more uniterated vertices in the
currently iterated connected component; false otherwise.
- Overrides:
isConnectedComponentExhausted
in class CrossComponentIterator
- See Also:
CrossComponentIterator.isConnectedComponentExhausted()
encounterVertex
protected void encounterVertex(java.lang.Object vertex,
Edge edge)
- Description copied from class:
CrossComponentIterator
- Update data structures the first time we see a vertex.
- Overrides:
encounterVertex
in class CrossComponentIterator
- See Also:
CrossComponentIterator.encounterVertex(java.lang.Object,
org._3pq.jgrapht.Edge)
encounterVertexAgain
protected void encounterVertexAgain(java.lang.Object vertex,
Edge edge)
- Description copied from class:
CrossComponentIterator
- Called whenever we re-encounter a vertex. The default implementation
does nothing.
- Overrides:
encounterVertexAgain
in class CrossComponentIterator
- See Also:
CrossComponentIterator.encounterVertexAgain(java.lang.Object,
org._3pq.jgrapht.Edge)
provideNextVertex
protected java.lang.Object provideNextVertex()
- Description copied from class:
CrossComponentIterator
- Returns the vertex to be returned in the following call to the iterator
next
method.
- Overrides:
provideNextVertex
in class CrossComponentIterator
- See Also:
CrossComponentIterator.provideNextVertex()