2014-07-07 66 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對象嗎?

目前還不清楚你想要完成什麼。

相關問題