我正在尝试运行我的哈密顿路径算法,但是我希望能够在每个顶点上都无法找到它时从每个顶点运行它,并且如果从开始后却找不到,最终返回空数组。他们全部。我的for循环不起作用,但是当我只用数字单独调用它时,它将返回正确的路径。我敢肯定错误只是因为for循环或if语句,因为从一个特定顶点调用该算法时,算法始终有效
sd是已经在类中声明的数组,可以通过调用SolveHamiltonianPath方法对其进行编辑,它包含路径或不完整的路径。 ReverseID是一个哈希表,当我使用由int索引的字符串图时,它为我提供了字符串值。
int i = 0; //this way works
visited[i] = true;
path.add(reverseID.get(i));
solveHamiltonianPath(i,visited,path);
return sd;
for(int i = 0; i < numVertices; i++) //this doesn't
{
if(sd.length < numVertices)
{
visited[i] = true;
path.add(reverseID.get(i));
solveHamiltonianPath(i,visited,path);
}
else
{
return sd;
}
}
return null;