我想實現Warshall的算法來找到鄰接矩陣的傳遞閉包。這是我對功能:我在Warshall算法中缺少什麼?
public static int[][] warshall(int A[][]){
int R[][] = A;
for (int k = 1; k < n; k++) {
for (int i = 1; i < n; i++) {
for (int j = 1; j < n; j++) {
if ((R[i][j] == 1) || ((R[i][k] == 1) && (R[k][j] == 1))) {
A[i][j] = 1;
}
}
}
R = A.clone();
}
return A;
}
我用下面的鄰接矩陣測試:
0100
0001
0000
1010
這將導致:
1111
1111
0000
1111
我不是越來越接近這一點。任何人都可以隨時看到我缺少的東西嗎?
感謝您的任何提示或建議。
我沒有看到任何這段代碼的一部分遍歷頂點或邊。另外,'n'是什麼?它沒有在代碼塊的任何地方定義。 – Makoto 2014-11-02 05:57:24
圖也可以表示爲矩陣 – 2014-11-02 06:10:00