Так вот код я прямо сейчас:Как сделать матрицу смежности в Java
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
System.out.print(B[i][j] + ": ");
if (i < 2){
temp2 = B[i+1][j];
System.out.print(temp2 + "-");
}
if (j < 2){
temp2 = B[i][j+1];
System.out.print(temp2 + "-");
}
if (i > 0){
temp2 = B[i-1][j];
System.out.print(temp2 + "-");
}
if (j > 0){
temp2 = B[i][j-1];
System.out.print(temp2 + "-");
}
System.out.println(" ");
}
}
Что он делает сейчас печатает из списка, который выглядит следующим образом:
1: 4-0
0: 2-3-1
3: 6-0
4: 7-2-1
2: 5-6-0-4
6: 8-3-2
7: 5-4
5: 8-2-7
8: 6-5
Этот список - смежные вершины для этого графика.
1 0 3
4 2 6
7 5 8
Я проверил и распечатает правильные смежные вершины для каждого значения val ue в этом массиве 2d. Поэтому мне интересно, как бы вы превратили это в матрицу смежности. Я знаю, что мне нужно сначала создать 2d-массив размером 9x9, но у меня возникли проблемы с фактическим размещением значений в правильных местах в массиве. Итак, когда я нахожу соседнюю вершину, как я могу поместить это значение в матрицу смежности? Я мог бы также попытаться включить их в связанный список, потому что это займет меньше места, но я думаю, что матрица будет проще.
Поскольку первая строка показывает, что 1 подключен к 4 и к 0, это не так просто, как 'm [1] [4] = 1; м [4] [1] = 1; m [1] [0] = 1; m [0] [1] = 1; '? – Andreas
Когда ваш код выводит '1: 4-0', это не было жестко запрограммировано? Нет, это были переменные, производящие номера '1',' 4' и '0'. Поэтому, когда я (в качестве примера) показал, что '1: 4-0' приведет к' m [1] [4] = 1; м [4] [1] = 1; m [1] [0] = 1; m [0] [1] = 1; ', оба будут использовать эти переменные. Я не собирался предполагать, что вы напишете эти 4 задания напрямую, только через код эти 4 назначения будут сделаны. – Andreas
nvm Я только что понял. Мне пришлось создать переменную temp1 и установить ее в B [i] [j]. –