我必须绘制我想要联合的图,即创建一个由图的边和节点的联合组成的新图(不重复)。在 JUNG 中是否有可用的实现,还是我自己这样做?
问问题
621 次
1 回答
0
在 JUNG 中没有实现,但假设图形、顶点和边的类型相同,大约需要六行代码:
// 给定图 g1, g2 图 g = new [适当的图实现] for (V v : Collections.union(g1.getVertices(), g2.getVertices())) { g.addVertex(v); } 对于 (E e : g1.getEdges()) { g.addEdge(e, g1.getEndpoints(e)); } 对于 (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 回答