public class BreadthFirstWalk extends Object
Performs a breadth-first walk of a given Graph
,
notifying visitors as it sees each node. See the BFS algorithm
in the book 'Introduction to Algorithms' by Cormen, Leiserson, and
Rivest.
Each GraphVisitor
will be notified when a node
is colored black (nodeVisited), edge seen (edgeVisited),
and a node is seen for the first time, i.e. colored gray (nodeSeen).
Constructor and Description |
---|
BreadthFirstWalk(Graph graph) |
Modifier and Type | Method and Description |
---|---|
void |
addGraphVisitor(GraphVisitor visitor)
add a
GraphVisitor to be notified during breadth first search. |
protected void |
edgeVisited(Edge edge)
An edge is seen.
|
protected void |
enqueue(Object node,
org.apache.openjpa.lib.graph.NodeInfo info)
Push the given node onto the queue to be processed.
|
void |
removeGraphVisitor(GraphVisitor visitor)
remove a given
GraphVisitor from the listener set. |
protected void |
visit(Object node,
org.apache.openjpa.lib.graph.NodeInfo info)
Visit the node.
|
void |
walk()
Begins the breadth first traversal.
|
public BreadthFirstWalk(Graph graph)
public void walk()
protected void enqueue(Object node, org.apache.openjpa.lib.graph.NodeInfo info)
protected void visit(Object node, org.apache.openjpa.lib.graph.NodeInfo info)
protected void edgeVisited(Edge edge)
public void addGraphVisitor(GraphVisitor visitor)
GraphVisitor
to be notified during breadth first search.public void removeGraphVisitor(GraphVisitor visitor)
GraphVisitor
from the listener set.Copyright © 2006–2022 Apache Software Foundation. All rights reserved.