Files
unisa_strutture_dati_2013_2014/graph/ComponentsDFS.java

22 lines
797 B
Java

package graph;
/** This class extends DFS to compute the connected components of a graph. */
public class ComponentsDFS<V, E> extends DFS<V, E, Object, Integer> {
protected Integer compNumber; // Connected component number
protected Object COMPONENT = new Object(); // Connected comp. selector
protected void setup() { compNumber = 1; }
protected void startVisit(Vertex<V> v) {
v.put(COMPONENT, compNumber);
}
protected Integer finalResult(Integer dfsResult) {
for (Vertex<V> v : graph.vertices()) // check for any unvisited vertices
if (v.get(STATUS) == UNVISITED) {
compNumber += 1; // we have found another connected component
dfsTraversal(v); // visit all the vertices of this component
}
return compNumber;
}
}