在jgrapht DirectedAcyclicGraph中查找根和叶集合的方法如下:
import org.jgrapht.DirectedAcyclicGraph;
import org.jgrapht.graph.DefaultEdge;
DirectedAcyclicGraph<String, DefaultEdge> dag = new DirectedAcyclicGraph<>(DefaultEdge.class);
dag.addVertex("A");
dag.addVertex("B");
dag.addVertex("C");
dag.addVertex("D");
dag.addEdge("A", "B");
dag.addEdge("A", "C");
dag.addEdge("B", "D");
dag.addEdge("C", "D");
Set<String> roots = new HashSet<>();
for (String vertex : dag.vertexSet()) {
if (dag.inDegreeOf(vertex) == 0) {
roots.add(vertex);
}
}
Set<String> leaves = new HashSet<>();
for (String vertex : dag.vertexSet()) {
if (dag.outDegreeOf(vertex) == 0) {
leaves.add(vertex);
}
}
System.out.println("Roots: " + roots);
System.out.println("Leaves: " + leaves);
这样,我们就可以在jgrapht DirectedAcyclicGraph中找到根和叶集合了。
关于jgrapht库的更多信息和使用方法,可以参考腾讯云的图数据库产品TGraph的介绍链接:TGraph。
领取专属 10元无门槛券
手把手带您无忧上云