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 –