2014-07-07 46 views
0

你能帮助我吗?如何在图中存在这些节点的两个节点/顶点之间添加边。 我的图形使用自定义顶点和自定义边界类。 这里我的代码如何为jung中的两个现有节点/顶点添加边缘

if(findEdge(g,v1,v2)==null) 
g.addEdge(new Edge(), v1, v2, EdgeType.DIRECTED); 

其中findEdge功能

public Edge findEdge(DirectedGraph<Vertex, Edge> g, Vertex v1,Vertex v2) { 
    Collection<Edge> edges = g.getEdges(); 
    for (Edge ed : edges) { 
     //System.out.print(vt.getLabel() + " "); 
     if(ed.getNodeFrom().equals(v1.getLabel())&&ed.getNodeDes().equals(v2.getLabel())) { 
      return ed; 
     } 
    } 
    return null; 
} 

从功能,我可以导致约两存在节点的边缘,是存在或无效。

+1

你可以考虑使用http://jung.sourceforge.net/doc/api/edu/uci/ics/jung/graph/Hypergraph.html#findEdge%28V,%20V%29。除此之外,问题的内容并不十分清楚。 – Marco13

+0

对于我不清楚的问题,我感到抱歉。我的意思是,我有图形DirectedGraph g = new DirectedSparseMultigraph ()并且该图中有许多顶点/节点,我想为图g中已有的节点添加一个边,但我不知道该怎么做。 –

+0

这是一个多图吗?如果不是,只需再次调用'addEdge()',应该只有一个边缘(我之前和Jung一起工作过,但是IIRC没有开发4年左右,但我相信有这样的特性)。 – rlegendi

回答

0

首先,Graph已经有一个findEdge()方法;看看Marco13 @提供给你的API文档。第二,正如rlegendi @所指出的那样,目前还不清楚你是否需要一个多图:如果你这么做,为什么只有在没有一个存在的情况下才添加边,如果你不存在,为什么你创建一个DirectedSparseMultigraph对象吗?

目前还不清楚你想要完成什么。

相关问题