我有一個Edge類存儲:源(頂點),目標(頂點)和重量。如何在繪製圖形後創建鄰接列表?
我有一個頂點類,它存儲:name,x座標,y座標和Edge [] adjacentList。
我也有一個Graph類,它存儲兩個ArrayLists:邊和頂點。
當前當繪製頂點/節點和邊時,它會自動添加到頂點和邊列表中。
現在我想填充Edge [] adjacentList使用這兩個數組列表,但我不知道如何做到這一點。如果有人能夠給我指示或代碼的外觀如何,我將不勝感激。
謝謝。
我有一個Edge類存儲:源(頂點),目標(頂點)和重量。如何在繪製圖形後創建鄰接列表?
我有一個頂點類,它存儲:name,x座標,y座標和Edge [] adjacentList。
我也有一個Graph類,它存儲兩個ArrayLists:邊和頂點。
當前當繪製頂點/節點和邊時,它會自動添加到頂點和邊列表中。
現在我想填充Edge [] adjacentList使用這兩個數組列表,但我不知道如何做到這一點。如果有人能夠給我指示或代碼的外觀如何,我將不勝感激。
謝謝。
首先在代碼中有冗餘。 Edge類不需要包含源頂點,因爲您將該邊存儲到頂點類中,所以顯然頂點將成爲源。
我們的邊緣添加到任意頂點的鄰接表:
假設你有兩個頂點:A和B,其中A是源,B是 目標頂點。要創建一個邊緣剛剛創建邊緣 類的一個實例(顯然是有定義的構造函數)並將其添加到頂點A的 鄰接表
Edge e1= new Edge('B' , weightofedge);
頂點的
假設實例V1即頂點然後v1.adjacentList[index]=e1;
或者你也可以在一行中完成。
我會創建一個.either方法(這需要一個邊作爲參數並返回頂點)和一個.other方法(它需要一個頂點並返回其邊的另一個頂點)。遍歷Graph類中的邊列表。對於每條邊,請調用。要麼獲得一個頂點,要將其存儲在某個變量中,我們稱它爲v1。現在打電話給其他頂點,稱之爲v2。
將v1,v2組合添加到v1的Edge []和v2的Edge []中。
有實現圖形的一些方法:
你可以有頂點類,其中包含他的鄰居,每個實例保持ArrayList的 或者你可以有一個布爾值| V | X | V |矩陣如果矩陣[i] [j]爲真意味着您已經將邊從頂點i指向頂點j。
感謝您的回覆。在繪製邊緣時計算每個頂點的鄰接列表是否更有效,或者最好是在運行算法之前一次完成所有邊緣的鄰接列表? – RikudouSennin 2012-07-18 21:01:13
@RududouSennin我沒有得到你的問題。你能詳細說明一下嗎? – dejavu 2012-07-19 07:41:52
@ Android解碼,我想知道當我繪製頂點和邊緣時,填充鄰接表是否更有效。換句話說,當創建Vertex和Edge的新實例時。或者,在執行算法之前,一旦圖完全繪製完成後,最好計算鄰接列表的最後位置? – RikudouSennin 2012-07-21 13:53:17