0

我必须绘制我想要联合的图,即创建一个由图的边和节点的联合组成的新图(不重复)。在 JUNG 中是否有可用的实现,还是我自己这样做?

4

1 回答 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 回答