0
我必須要統一圖形,即創建一個由圖形的邊和節點(不重複)聯合組成的新圖。在JUNG中有沒有可用的實現,或者我自己有這樣的實現嗎?如何在JUNG中合併兩張圖?
我必須要統一圖形,即創建一個由圖形的邊和節點(不重複)聯合組成的新圖。在JUNG中有沒有可用的實現,或者我自己有這樣的實現嗎?如何在JUNG中合併兩張圖?
沒有對於在JUNG的實現,但它是大約六行代碼假設圖表,頂點和邊緣是同類型的:
// given Graph g1, g2 Graph g = new [appropriate Graph implementation] for (V v : Collections.union(g1.getVertices(), g2.getVertices())) { g.addVertex(v); } for (E e : g1.getEdges()) { g.addEdge(e, g1.getEndpoints(e)); } for (E e : g2.getEdges()) { g.addEdge(e, g2.getEndpoints(e)); }
可以跳過頂點加入如果沒有孤立的頂點(即,沒有入射邊的頂點); addEdge()
將添加任何事件頂點。
如果圖形是定向的,你會希望上述更改爲
g.addEdge(e, g1.getSource(e), g1.getDest(e));
重複會被忽略(如果你想知道一個附加是否有效果,檢查返回值) 。
謝謝,但現在我有另一個疑問。有沒有辦法獲得圖形的巨大連接組件,還是必須使用WeakComponentClusterer類並遍歷所有集羣才能找到巨集? – Paulo
你的第二個問題在http://stackoverflow.com/questions/7182052/jung-how-to-get-the-giant-connected-component-of-a-graph –