Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的图形创建_Java_Search_Graph_Tree_Breadth First Search - Fatal编程技术网

Java中的图形创建

Java中的图形创建,java,search,graph,tree,breadth-first-search,Java,Search,Graph,Tree,Breadth First Search,在java中构造无向图的最佳方法是什么?我需要创建一个图表,以便在其上运行BFS和DFS。该图表应包括路径成本和相邻边等信息。您可以使用可用的库。例如,是一个提供标准图形算法的库。JgraphT提供了一个用于执行BFS的迭代器,请参见。下面是一个简单的例子: SimpleWeightedGraph<Integer, DefaultWeightedEdge> graph = new SimpleWeightedGraph<>(DefaultWeightedEdge.clas

在java中构造无向图的最佳方法是什么?我需要创建一个图表,以便在其上运行BFS和DFS。该图表应包括路径成本和相邻边等信息。

您可以使用可用的库。例如,是一个提供标准图形算法的库。JgraphT提供了一个用于执行BFS的迭代器,请参见。下面是一个简单的例子:

SimpleWeightedGraph<Integer, DefaultWeightedEdge> graph = new SimpleWeightedGraph<>(DefaultWeightedEdge.class);

graph.addVertex(1);
graph.addVertex(2);
graph.addVertex(3);

DefaultWeightedEdge edge = graph.addEdge(1, 3);
graph.setEdgeWeight(edge, 11.22);

edge = graph.addEdge(3, 2);
graph.setEdgeWeight(edge, 44.33);

BreadthFirstIterator<Integer, DefaultWeightedEdge> it = new BreadthFirstIterator<>(graph);
for (; it.hasNext();) {
    Integer i = it.next();
    System.out.println("Node: " + i);
}
SimpleWeightedGraph图形=新的SimpleWeightedGraph(defaultWeightEdge.class);
图.addVertex(1);
图.添加顶点(2);
图.添加顶点(3);
DefaultWeightedEdge边=graph.addEdge(1,3);
图.SetedgeWight(edge,11.22);
边=图形。添加边(3,2);
图.SetedgeWight(edge,44.33);
宽幅拼接器it=新的宽幅拼接器(图);
for(;it.hasNext();){
整数i=it.next();
System.out.println(“节点:+i”);
}

@Schrieveslaach感谢您的回复,但我想自己构造一个方法,而不是使用外部库。