diff --git a/src/java/org/apache/commons/graph/visitor/DFSVisitor.java b/src/java/org/apache/commons/graph/visitor/DFSVisitor.java index a790f42..2f09274 100644 --- a/src/java/org/apache/commons/graph/visitor/DFSVisitor.java +++ b/src/java/org/apache/commons/graph/visitor/DFSVisitor.java @@ -65,22 +65,37 @@ import org.apache.commons.graph.VStack; * this class (and of course its descendants) may be passed to a DFS * object. * - * @version $Id: DFSVisitor.java,v 1.1 2001/11/29 14:17:34 jvanzyl Exp $ + * @version $Id: DFSVisitor.java,v 1.2 2001/12/01 19:12:14 jvanzyl Exp $ * @author M. Dahm * @see DFS */ public class DFSVisitor extends DefaultVisitor { - private int time; // Global time - private VStack stack; // Stack to remember predecessors + + /** + * Global time. + */ + private int time; + + /** + * Stack to remember predecessors. + */ + private VStack stack; - public DFSVisitor() {} + /** + * Default constructor. + */ + public DFSVisitor() + { + } public void discoverGraph(Graph g) { int size = g.getNoVertices(); Vertex[] vertices = g.getVertexArray(); for(int i=0; i < size; i++) + { vertices[i].setPredecessor(null); + } time = 0; // Reset timer stack = new VStack(size); @@ -88,9 +103,13 @@ public class DFSVisitor extends DefaultVisitor { public void discoverVertex(Vertex v) { if(stack.empty()) // First node + { v.setPredecessor(null); + } else + { v.setPredecessor(stack.top()); + } stack.push(v); v.setDiscoveryTime(time++);