在邻接矩阵中找到路径

时间:2013-04-23 17:42:46

标签: java matrix adjacency-matrix

我试图在邻接矩阵中找到一条路径,但我总是收到此错误消息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
    at GraphApp.main(GraphApp.java:102)

这是我的代码:

for (int i = 0; i < adjMat.length; i++)
    for (int j = 0; j < adjMat[i].length; j++)
        if (i < j)
            if (adjMat[i][j] == 1) //
                for (i = j + 1; i < adjMat.length; i++)
                    if (adjMat[i][j] == 1)
                        System.out.println("Graph conatains a path");
                    else
                        System.out.println("Graph doesn't contain a path");

例如,当我有这样的矩阵时:

0 1 1 1
1 0 1 0
1 1 0 0
1 0 0 0

我应该验证,例如,1中的T[0][1]是否在1中有另一个T[i][1],除了第一个当然因为矩阵是对称的。

1 个答案:

答案 0 :(得分:4)

您在循环中使用i两次可能导致ArrayIndexOutOfBoundsException。如果您使用正确的大括号,将有助于轻松阅读您的代码并找出问题。

for (int i = 0; i < adjMat.length; i++) // first 
 ...
    ...
       for (i = j + 1; i < adjMat.length; i++)  // second