com.jn.langx.util.collection.graph.traverser.DeepFirstGraphTraverser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of langx-java Show documentation
Show all versions of langx-java Show documentation
Java lang extensions for java6+, a supplement to , replacement of a Guava, commons-lang.
Core utilities, Collection utilities, IO utilities, Cache, Configuration library ...
package com.jn.langx.util.collection.graph.traverser;
import com.jn.langx.util.collection.graph.*;
import java.util.Map;
/**
* 深度优先遍历,且先子后父
*
* @param
*/
public class DeepFirstGraphTraverser extends AbstractGraphTraverser {
protected void traverse(Map visitStatusMap, Graph graph, Vertex vertex, Edge edge, VertexConsumer consumer) {
for (int i = 0; i < vertex.getOutgoingEdgeCount(); i++) {
Edge e = vertex.getOutgoingEdge(i);
if (Graphs.isNotVisited(visitStatusMap, e.getTo().getName())) {
traverse(visitStatusMap, graph, e.getTo(), e, consumer);
}
}
doVisit(visitStatusMap, graph, vertex, edge, consumer);
}
}