1

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

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

例如,我应该验证除了第一个之外, 1inT[0][1]是否还有另一个1in ,因为矩阵是对称的。T[i][1]

4

1 回答 1

4

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

for (int i = 0; i < adjMat.length; i++) // first 
 ...
    ...
       for (i = j + 1; i < adjMat.length; i++)  // second
于 2013-04-23T17:46:56.437 回答