/** This class specializes DFS to determine whether the graph is connected. */
public class ConnectivityDFS extends DFS {
  protected int reached;
  public Object execute(Graph g, Vertex start, Object info) {
    init(g);
    int n = 0;
    Iterator V = G.vertices();
    while (V.hasNext()) {
      V.next();
      n++;
    }
    reached = 0;
    dfsTraversal(start);
    return new Boolean(reached == n);
  }
  protected void startVisit(Vertex v) { reached++; }

}