2010-11-08 440 views
0

如何使用鄰接矩陣將有向圖轉換爲無向圖?如何將有向圖轉換爲無向圖?

public directedToUndirected(boolean[][] adjMatrix) { 

} 
+0

爲i只需要在該方法內以唯一要做的事情: – Devoted 2010-11-08 22:30:07

+0

如果(adjMatrix [i] [j] == TRUE){adjMatrix [j]的[I] = TRUE; } ?? – Devoted 2010-11-08 22:31:01

回答

2

對原始矩陣和原始轉置進行布爾運算OR

+0

ohhhhh!海拉智能 – Devoted 2010-11-08 22:31:44

+1

您的評論中的方法也可以。無向圖將沿着對角線鏡像矩陣。 – 2010-11-08 22:33:26

1

你可以通過整個陣列環和翻轉指數,假設你使用0和1的

for (int i=0; i<adjMatrix.length; i++) { 
    for (int j=0; j<adjMatrix[i].length; j++) { 
    if (adjMatrix[i][j] == 1) { 
     adjMatrix[j][i] = 1; 
    } 
    } 
} 
0

你必須找到需要不改變信息的任何方法。在所有上述建議的方法中,節點ij之間的邊緣被給予ji,並且這是錯誤的,因爲沒有這樣的邊緣。

您可以將圖形更改爲較大的圖形並進行一些虛擬連接。例如,如果i連接到j並且j已連接到i,則可以將i更改爲i'並定義ji之間的新邊緣。您還應該保存i'i相同的事實。

+0

你所描述的理論上是正確的,但找到解決方案是不可能的。想想一個包含兩個節點A和B和一個邊(A,B)的有向圖。沒有辦法構建具有相同屬性的無向圖。 – Emiswelt 2013-01-13 17:15:22

相關問題