2012-03-12 37 views
-1

我需要用於合併或連接到圖的算法,通過我的意思是圖1的最後一個節點應圖表2. 圖表1的第一節點的predecesor:合併/加入兩個單獨的圖算法?

1->2->3 
    \/
    4->5 

圖2:

6->7 
    | \ 
    8->9 

這就是我需要:

1->2->3 
    \/
    4->5->6->7 
      | \ 
      8->9 
+0

你到目前爲止嘗試過什麼嗎? – Halfwarr 2012-03-12 18:40:43

+1

我認爲你誤解了這個問題,我知道我可以遍歷第二個圖,並將第一個節點添加到第一個節點,也是邊,但是我想知道是否有一些預定義的algorythm可以使它變得容易。 – sm13294 2012-03-12 18:43:32

回答

1

createNewGraph 迭代曲線圖1和添加新的圖形 迭代圖1 爲每個節點iteratesuccessors 這些節點之間的每個邊添加到新的曲線圖

迭代曲線2,並添加新的圖 迭代圖2 爲每個節點iteratesuccessors 這些節點之間的每個邊添加到新的曲線圖

從圖1的最後一個節點添加到邊緣圖的firstnode 2

0
  1. 掃描頂點s,並找到零的頂點outdegree
  2. 掃描圖2的頂點,並找到一個頂點indegree零。
  3. 用弧連接兩個頂點。

根據圖表,解決方案可能是唯一的(在給出的示例中它是唯一的)。

+0

我已經有指定需要連接的節點,這是我的方法:concat(DirectedGraphInterface g1,DirectedGraphInterface g2)。我正在使用java的yEd grail – sm13294 2012-03-13 13:18:02

0

它完全取決於你如何表示圖。例如,如果節點按照您的示例進行了編號(第一個圖爲1..N,第二個圖爲N+1..M),您只需創建一個新圖,將兩個圖都複製到新圖中,然後添加邊N,N+1到它。