我有一個問題,基本上可以看作一個圖。我正在考慮使用JGraphT來實現它,而不是滾動我自己的。使用JGraphT從圖中獲得最小生成樹的最佳方法是什麼?Java:使用JGraphT生成最小生成樹?
2
A
回答
5
不幸的是,我不知道足夠的圖論給你一個完整的,直接的答案,但我已經在幾個項目中使用jgrapht,所以也許這會有所幫助。
包含jgrapht是這裏的算法列表:http://www.jgrapht.org/javadoc/org/jgrapht/alg/package-summary.html,你還可以找到圖遍歷實現迭代器(如果這是任何幫助)在這裏:http://www.jgrapht.org/javadoc/org/jgrapht/traverse/package-summary.html
我敢肯定,沒有這些算法將讓你想要開箱即用,所以你必須自己編寫代碼,但我可以從經驗告訴你,在jgraph之上編寫代碼而不是從頭開始更容易。還有一個FibonacciHeap類,可能有助於實施Prim的算法。
如果您需要算法本身的幫助,有許多關於維基百科條目的算法,包括詳細的描述和僞代碼。 Minimum spanning tree article鏈接到他們。
2
Jung有一個這樣的實現。
1
ClosestFirstIterator可能會幫助你。它在遍歷頂點時使用FibonacciHeap構建生成樹。
ClosestFirstIterator提供方法getShortestPathLength()和getSpanningTreeEdge()來獲取最小生成樹的部分。
// instantiate the iterator
ClosestFirstIterator<V,E> it = new ClosestFirstIterator<V,E>(graph, start_vertex);
// iterate to build the tree
while(it.hasNext())
it.next();
// query
double distance = getShortestPathLength(vertex);
E next_edge = getSpanningTreeEdge(vertex);
相關問題
- 1. 通用最小生成樹
- 2. Java最小生成樹問題
- 3. 動態最小生成樹
- 4. JGrapht:使用DirectedSubgraph.java類生成子圖
- 5. 最快最小生成樹算法
- 6. 用於生成和使用生成的決策樹的Java庫
- 7. 什麼是最小葉生成樹?
- 8. 最小直徑生成樹算法
- 9. 關於切入最小生成樹
- 10. R:深度最小生成樹
- 11. Sollin的最小生成樹算法
- 12. 關於最小生成樹圖
- 13. Networkx最小生成樹 - 精度問題?
- 14. 多重最小生成樹圖
- 15. 使用Java CUP解析樹生成
- 16. StackOverflowError決策樹生成JAVA
- 17. Java中的鄰接矩陣的最小生成樹
- 18. 使用鄰接表來表示最小生成樹
- 19. 如何使用Neo4j查找最小生成樹?
- 20. 查找具有最大最小度的生成樹
- 21. 使特定節點的程度最小化的最小生成樹
- 22. 爲jsTree生成樹
- 23. 遞歸樹生成
- 24. XML樹的生成
- 25. 使用java的Xml生成
- 26. jquery生成樹的最佳控件
- 27. Java USSD菜單樹生成 - 如何
- 28. 設計一個圖,其中最短路徑樹比最小生成樹長
- 29. 使用BGL創建生成樹
- 30. 使用csv文件生成類別樹