|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectcom.tensegrity.graph.algorithm.DFS
com.tensegrity.graph.algorithm.BiconnectedDFS
This class implements the Depth-First-Search algorithm with a cost of
O(|V| + |E|).The biconnected components of the graph are found during a visit. Use method
getBiconnectedComponents() after the search is
complete to query the found biconnected components.
| Nested Class Summary | |
static class |
BiconnectedDFS.BiComponent
This class represents a single biconnected component which consists of nodes and edges. |
| Constructor Summary | |
BiconnectedDFS()
Constructs a new empty BiconnectedBFS search context. |
|
| Method Summary | |
void |
afterRecursion(Graph graph,
Edge edge,
Node node)
Callback invoked right after the recursion in the dfs algorithm. |
void |
apply(Graph graph)
Starts the algorithm. |
void |
backEdge(Graph graph,
Edge edge)
Callback invoked each time a backedge is encountered for the first time. |
void |
beforeRecursion(Graph graph,
Edge edge,
Node node)
Callback invoked right before the recursion in the dfs algorithm. |
void |
endGraph(Graph graph)
Callback invoked after the dfs algorithm completed its work. |
void |
endNode(Graph graph,
Node node,
Node father)
Callback invoked after the dfs algorithm has processed a single node (and all children recursively). |
java.util.List |
getArticulationPoints()
Returns the list of articulation points (which are nodes). |
java.util.List |
getBiconnectedComponents()
Returns a list of the biconnected components which are of the type BiconnectedDFS.BiComponent. |
boolean |
isBiconnected()
Returns true if the graph is entirely biconnected. |
void |
startDFSTree(Graph graph,
Node node)
Callback invoked each time a new dfs-tree is started in the dfs search forest. |
void |
startGraph(Graph graph)
Callback invoked before the dfs algorithm starts its work. |
void |
startNode(Graph graph,
Node node,
Node father)
Callback invoked before the dfs algorithm processes a single node. |
void |
usedAdjacentNodeEncountered(Graph graph,
Edge edge,
Node node)
If the adjacent nodes of the current node are scanned and an already processed node is encountered, this method is invoked. |
| Methods inherited from class com.tensegrity.graph.algorithm.DFS |
apply, apply, getDFSNumber, getDFSParent, getDFSSequence, getRoots, isConnected |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public BiconnectedDFS()
BiconnectedBFS search context.
| Method Detail |
public java.util.List getBiconnectedComponents()
BiconnectedDFS.BiComponent.
public java.util.List getArticulationPoints()
public boolean isBiconnected()
public void apply(Graph graph)
graph - the Graph to process, may not be null.public void startGraph(Graph graph)
DFSVisitor
startGraph in interface DFSVisitorgraph - graph the algorithm is working upon.public void endGraph(Graph graph)
DFSVisitor
endGraph in interface DFSVisitorgraph - graph the algorithm is working upon.
public void startNode(Graph graph,
Node node,
Node father)
DFSVisitor
startNode in interface DFSVisitorgraph - graph the algorithm is working upon.node - the currently processed nodefather - the predecessor of the node, or null if the node
has no predecessor in the dfs search order.
public void endNode(Graph graph,
Node node,
Node father)
DFSVisitor
endNode in interface DFSVisitorgraph - graph the algorithm is working upon.node - the currently processed nodefather - the predecessor of the node, or null if the node
has no predecessor in the dfs search order.
public void beforeRecursion(Graph graph,
Edge edge,
Node node)
DFSVisitor
beforeRecursion in interface DFSVisitorgraph - graph the algorithm is working upon.edge - the edge that lead to the recursion.node - the node that is going to be examined recursively next.
public void afterRecursion(Graph graph,
Edge edge,
Node node)
DFSVisitor
afterRecursion in interface DFSVisitorgraph - graph the algorithm is working upon.edge - the edge that lead to the recursion.node - the node that was just recently examined recursively.
public void backEdge(Graph graph,
Edge edge)
DFSVisitor
backEdge in interface DFSVisitorgraph - graph the algorithm is working upon.edge - the backedge.
public void usedAdjacentNodeEncountered(Graph graph,
Edge edge,
Node node)
DFSVisitor
usedAdjacentNodeEncountered in interface DFSVisitorgraph - graph the algorithm is working upon.edge - the edge that connected the already seen node.node - the node that was already visited.
public void startDFSTree(Graph graph,
Node node)
DFSVisitor
startDFSTree in interface DFSVisitorgraph - graph the algorithm is working upon.node - the root node of one dfs tree.
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||