All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jn.langx.util.collection.graph.traverser.DeepFirstGraphTraverser Maven / Gradle / Ivy

Go to download

Java lang extensions for java6+, a supplement to , replacement of a Guava, commons-lang. Core utilities, Collection utilities, IO utilities, Cache, Configuration library ...

There is a newer version: 4.8.2
Show newest version
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);
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy