org.xerial.util.graph
Class DFSVisitor<NodeType,EdgeType>

java.lang.Object
  extended by org.xerial.util.graph.DFSVisitor<NodeType,EdgeType>

public class DFSVisitor<NodeType,EdgeType>
extends Object

Depth first visitor

Author:
leo

Constructor Summary
DFSVisitor(AdjacencyList<NodeType,EdgeType> graph)
           
 
Method Summary
 void backEdge(Edge edge)
           
 void depthFirstSearch(NodeType startNode)
           
 void discoverNode(NodeType node)
           
 void examineEdge(Edge edge)
           
 void finishNode(NodeType node)
           
 void forwardOrCrossEdge(Edge edge)
           
 int getDiscoveryTime(NodeType node)
           
 int getFinishTime(NodeType node)
           
 NodeType getPredecessor(NodeType node)
           
protected  AdjacencyList<NodeType,EdgeType> graph()
           
 void initializeNode(NodeType node)
           
 void startNode(NodeType node)
           
 String toString(Edge edge)
           
 void treeEdge(Edge edge)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DFSVisitor

public DFSVisitor(AdjacencyList<NodeType,EdgeType> graph)
Method Detail

getPredecessor

public NodeType getPredecessor(NodeType node)

getDiscoveryTime

public int getDiscoveryTime(NodeType node)

getFinishTime

public int getFinishTime(NodeType node)

graph

protected final AdjacencyList<NodeType,EdgeType> graph()

depthFirstSearch

public final void depthFirstSearch(NodeType startNode)

toString

public String toString(Edge edge)

initializeNode

public void initializeNode(NodeType node)

startNode

public void startNode(NodeType node)

discoverNode

public void discoverNode(NodeType node)

finishNode

public void finishNode(NodeType node)

examineEdge

public void examineEdge(Edge edge)

treeEdge

public void treeEdge(Edge edge)

backEdge

public void backEdge(Edge edge)

forwardOrCrossEdge

public void forwardOrCrossEdge(Edge edge)


Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.1 Japan License.