1 25 45 package org.jgrapht.traverse; 46 47 import java.util.*; 48 49 import org.jgrapht.*; 50 51 52 62 public class DepthFirstIterator<V, E> 63 extends CrossComponentIterator<V, E, Object > 64 { 65 66 68 private List<V> stack = new ArrayList<V>(); 69 70 72 77 public DepthFirstIterator(Graph<V, E> g) 78 { 79 this(g, null); 80 } 81 82 92 public DepthFirstIterator(Graph<V, E> g, V startVertex) 93 { 94 super(g, startVertex); 95 } 96 97 99 102 protected boolean isConnectedComponentExhausted() 103 { 104 return stack.isEmpty(); 105 } 106 107 110 protected void encounterVertex(V vertex, E edge) 111 { 112 putSeenData(vertex, null); 113 stack.add(vertex); 114 } 115 116 119 protected void encounterVertexAgain(V vertex, E edge) 120 { 121 } 122 123 126 protected V provideNextVertex() 127 { 128 return stack.remove(stack.size() - 1); 129 } 130 } 131 | Popular Tags |