所以这是我现在的代码:
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
我已经检查过,它会为这个2d数组中的每个值打印出正确的相邻顶点。所以我想知道如何将其变成邻接矩阵。我知道我必须首先创建一个大小为9x9的二维数组,但是我实际上将值放在数组中的正确位置时遇到了麻烦。所以当我找到相邻的顶点时,我怎么能把这个值放到一个邻接矩阵中呢?我也可以尝试将这些放入链表中,因为这会占用更少的空间,但我认为矩阵会更容易。
答案 0 :(得分:0)
如果您调用9x9邻接矩阵M,并且您发现节点0与2,3和1相邻,则设置
M[0][2]=1
M[0][3]=1
M[0][1]=1
因为邻接矩阵是对称的:
M[2][0]=1
M[3][0]=1
M[1][0]=1
索引会告诉您要引用的节点,如果节点相邻则值为1,否则为0。 这听起来像是你应该弄清楚的家庭作业。