下面是我现在拥有的代码:
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我已经检查过了,它确实打印出了这个二维数组中每个值的正确相邻顶点。所以我想知道你如何把它变成一个邻接矩阵。我知道我必须首先创建一个大小为9x9的二维数组,但我在将值放入数组中的正确位置时遇到了问题。那么,当我找到相邻顶点时,我如何将该值放入邻接矩阵中?我也可以尝试将它们放到链表中,因为这样会占用更少的空间,但我认为矩阵会更容易。
发布于 2015-12-02 15:16:08
如果您调用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。这听起来确实像是一项家庭作业,你应该自己弄清楚。
https://stackoverflow.com/questions/34036732
复制相似问题