Package 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:
java.util.Iterator,GraphIterator
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
-
-
Constructor Summary
Constructors Constructor Description BreadthFirstIterator(Graph g)Creates a new breadth-first iterator for the specified graph.BreadthFirstIterator(Graph g, java.lang.Object startVertex)Creates a new breadth-first iterator for the specified graph.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidencounterVertex(java.lang.Object vertex, Edge edge)Update data structures the first time we see a vertex.protected voidencounterVertexAgain(java.lang.Object vertex, Edge edge)Called whenever we re-encounter a vertex.protected booleanisConnectedComponentExhausted()Returns true if there are no more uniterated vertices in the currently iterated connected component; false otherwise.protected java.lang.ObjectprovideNextVertex()Returns the vertex to be returned in the following call to the iteratornextmethod.-
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, setCrossComponentTraversal, setReuseEvents
-
-
-
-
Constructor Detail
-
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 isnull, 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.
-
-
Method Detail
-
isConnectedComponentExhausted
protected boolean isConnectedComponentExhausted()
Description copied from class:CrossComponentIteratorReturns true if there are no more uniterated vertices in the currently iterated connected component; false otherwise.- Specified by:
isConnectedComponentExhaustedin classCrossComponentIterator- Returns:
- true if there are no more uniterated vertices in the currently iterated connected component; false otherwise.
- See Also:
CrossComponentIterator.isConnectedComponentExhausted()
-
encounterVertex
protected void encounterVertex(java.lang.Object vertex, Edge edge)Description copied from class:CrossComponentIteratorUpdate data structures the first time we see a vertex.- Specified by:
encounterVertexin classCrossComponentIterator- Parameters:
vertex- the vertex encounterededge- the edge via which the vertex was encountered, or null if the vertex is a starting point- 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:CrossComponentIteratorCalled whenever we re-encounter a vertex. The default implementation does nothing.- Specified by:
encounterVertexAgainin classCrossComponentIterator- Parameters:
vertex- the vertex re-encounterededge- the edge via which the vertex was re-encountered- See Also:
CrossComponentIterator.encounterVertexAgain(java.lang.Object, org._3pq.jgrapht.Edge)
-
provideNextVertex
protected java.lang.Object provideNextVertex()
Description copied from class:CrossComponentIteratorReturns the vertex to be returned in the following call to the iteratornextmethod.- Specified by:
provideNextVertexin classCrossComponentIterator- Returns:
- the next vertex to be returned by this iterator.
- See Also:
CrossComponentIterator.provideNextVertex()
-
-