首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中生成邻接矩阵

如何在Java中生成邻接矩阵
EN

Stack Overflow用户
提问于 2015-12-02 15:02:57
回答 1查看 2.1K关注 0票数 0

下面是我现在拥有的代码:

代码语言:javascript
复制
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(" ");
            }
        }

它现在正在做的是打印出一个列表,如下所示:

代码语言:javascript
复制
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

此列表是此图的相邻顶点

代码语言:javascript
复制
1 0 3  
4 2 6
7 5 8

我已经检查过了,它确实打印出了这个二维数组中每个值的正确相邻顶点。所以我想知道你如何把它变成一个邻接矩阵。我知道我必须首先创建一个大小为9x9的二维数组,但我在将值放入数组中的正确位置时遇到了问题。那么,当我找到相邻顶点时,我如何将该值放入邻接矩阵中?我也可以尝试将它们放到链表中,因为这样会占用更少的空间,但我认为矩阵会更容易。

EN

回答 1

Stack Overflow用户

发布于 2015-12-02 15:16:08

如果您调用9x9邻接矩阵M,并计算出节点0与2、3和1相邻,则可以设置

代码语言:javascript
复制
M[0][2]=1
M[0][3]=1
M[0][1]=1

因为邻接矩阵是对称的:

代码语言:javascript
复制
M[2][0]=1
M[3][0]=1
M[1][0]=1

索引告诉您引用的是哪些节点,如果节点相邻,则值为1,否则为0。这听起来确实像是一项家庭作业,你应该自己弄清楚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34036732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档