2015-09-08 45 views
0

在java中構造無向圖的最佳方式是什麼?我需要創建一個圖形,以便我可以在其上運行BFS和DFS。圖形應該包含路徑成本和相鄰邊等信息。在Java中創建圖表

回答

1

您可以使用可用的庫。例如,JgraphT是一個提供標準圖算法的庫。 JgraphT提供了一個用於執行BFS的迭代器,請參閱here。這裏有一個簡單的例子:

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); 
} 
+0

@Schrieveslaach謝謝你的回覆,但我想自己構建一個方法,而不是使用外部庫。 – v1kas