結合したいグラフを作成する必要があります。つまり、グラフのエッジとノードの両方を (繰り返しなしで) 結合して構成される新しいグラフを作成する必要があります。JUNG で利用可能な実装はありますか、それとも自分で実装する必要がありますか?
1 に答える
0
JUNGにはそのための実装はありませんが、グラフ、頂点、およびエッジが同じタイプであると仮定すると、約6行のコードになります。
//与えられたグラフg1、g2 グラフg=新しい[適切なグラフの実装] 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));
重複は黙って無視されます(追加が効果を発揮したかどうかを知りたい場合は、戻り値を確認してください)。
于 2011-08-23T21:32:51.830 に答える