我试图在邻接矩阵中找到一条路径,但我总是收到此错误消息:
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]
,除了第一个当然因为矩阵是对称的。
答案 0 :(得分:4)
您在循环中使用i
两次可能导致ArrayIndexOutOfBoundsException。如果您使用正确的大括号,将有助于轻松阅读您的代码并找出问题。
for (int i = 0; i < adjMat.length; i++) // first
...
...
for (i = j + 1; i < adjMat.length; i++) // second