首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

一个拓扑排序的程序

2013-02-25 
求助:一个拓扑排序的程序输入一个有向图,存进G[][]里,然后来个拓扑排序,输出排序后的结果。我输入504 5 1 0

求助:一个拓扑排序的程序
输入一个有向图,存进G[][]里,然后来个拓扑排序,输出排序后的结果。
我输入
5
0
4 5 1 0
1 0
5 3 0
3 0
回车运行的结果是:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at Main.dfs(Main.java:12)
at Main.dfs(Main.java:9)
at Main.dfs(Main.java:9)
at Main.toposort(Main.java:18)
at Main.main(Main.java:34)
个人找了好些资料,却一点头绪也无,求助各位朋友了,谢谢!
代码如下:

望相助~~                                exception                  thread              
[解决办法]
数组越界
public static boolean dfs(int u) {
c[u] = -1;
for (int v = 1; v <= N; v++)
if (G[u][v] == 1) {
if (c[v] < 0)
return false;
if (c[v] == 0 && dfs(v) == false)
return false;
}
c[u] = 1;
topo[n--] = u;//这里的n没有初始化
return true;
}

热点排行