Java 在图中查找最长路径
我试图在图形中找到最长的路径,但在返回最长路径时遇到了麻烦。我已经计算出了递归,并且可以跟踪输出,但是我不能得到正确的输出。程序当前返回多条路径 预计产量是从拉斯维加斯开始的:[拉斯维加斯、盐湖城、丹佛、海伦娜、温尼伯、德卢斯] 我的深度优先搜索方法:Java 在图中查找最长路径,java,depth-first-search,Java,Depth First Search,我试图在图形中找到最长的路径,但在返回最长路径时遇到了麻烦。我已经计算出了递归,并且可以跟踪输出,但是我不能得到正确的输出。程序当前返回多条路径 预计产量是从拉斯维加斯开始的:[拉斯维加斯、盐湖城、丹佛、海伦娜、温尼伯、德卢斯] 我的深度优先搜索方法: public void dfs(City before, ArrayList<String> listOfCities){ System.out.println(before +"-->"+ before.getAdj
public void dfs(City before, ArrayList<String> listOfCities){
System.out.println(before +"-->"+ before.getAdjCities());
List<City> neighbours = before.getAdjCities();
before.setVisited(true);
for (int i = 0; i < neighbours.size(); i++) {
City n = neighbours.get(i);
if(!n.visited){
listOfCities.add(n.getCityName());
System.out.println(i+ " Test: " + listOfCities.toString());
dfs(n, listOfCities);
}
}
}
public void dfs(之前的城市,ArrayList城市列表){
System.out.println(before+“-->”+before.getAdjCities());
List neights=before.getAdjCities();
before.setvisted(true);
对于(int i=0;i<0.size();i++){
城市n=邻居。获取(i);
如果(!n.访问){
add(n.getCityName());
System.out.println(i+“Test:+listOfCities.toString());
dfs(n,城市列表);
}
}
}
以下是输出:
以下是图表:
您的城市列表在搜索的所有分支中都是静态的,这就是为什么它最终会显示所有城市。每个城市的递归步骤应该比较来自每个邻居的DFS结果以构建结果。使用Neo4j并要求它匹配最长路径:我遇到了类似的问题,你能分享这个更正的代码吗?比较将如何工作?/它将走向何方?我尝试过移动一些东西,但没有任何效果。请将dfs的返回类型更改为
List
,并在最长结果的开头返回当前城市。如何知道哪一个更长?添加一个变量,最初包含一个空列表-对于循环的每次迭代,以及if(dfsResult.size()>currentliment.size())currentLongest=dfsResult代码>