| org.geotools.graph.traverse.basic.SourceGraphIterator org.geotools.graph.traverse.standard.BreadthFirstIterator
All known Subclasses: org.geotools.graph.traverse.standard.DepthFirstIterator, org.geotools.graph.traverse.standard.DirectedBreadthFirstIterator,
BreadthFirstIterator | public class BreadthFirstIterator extends SourceGraphIterator (Code) | | Iterates over the nodes of a graph in a Breadth First Search pattern
starting from a specified node. The following illustrates the iteration
order.
The iteration operates by maintaning a node queue of active nodes.
An active node is a node that will returned at a later stage of the i
teration. The node queue for a Breadth First iteration is implemented as a
First In First Out queue.
A node is placed in the the node queue if it has not been visited, and
it is adjacent to a a node that has been visited. The node queue intially
contains only the source node of the traversal.
author: Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net |
buildQueue | protected Queue buildQueue(Graph graph)(Code) | | Builds the node queue for the iteration.
Parameters: graph - The graph being iterated over. A First In First Out queue. |
getQueue | protected Queue getQueue()(Code) | | Returns the node queue.
The node queue. |
next | public Graphable next(GraphTraversal traversal)(Code) | | Returns the next node from the node queue that has not yet been visited. It
is possible for the node queue to contain duplicate entries. To prevent
the iteration returning the same node multiple times, the visited flag is
checked on nodes coming out of the queue. If the flag is set, the node
is ignored, not returned, and the next node in the queue is returned. This
is however tranparent to the caller.
See Also: org.geotools.graph.traverse.GraphIterator.next |
setSource | public void setSource(Graphable source)(Code) | | Sets the source of the traversal and places it in the node queue. The first
call to this method will result in the internal node queue being built.
Subsequent calls to the method clear the node queue and reset the iteration.
See Also: SourceGraphIterator.setSource(Graphable) |
|
|