我用下面的代码段中挣扎,因为我尝试写一个函数查找,如果有两个节点之间的路线:在有向图中找到2个节点之间的路由?
主要在那里我可以isThereRoute
功能。
ArrayList<Node> visited = new ArrayList();
visted.add(start_node);
System.out.println(isThereRoute(start_node, end_node, visited));
以下是功能
bool isThereRoute(Node A, Node B, ArrayList<Node> visited){
flag = false;
if(A == B) return true;
for(Node n : A.adjacent()){
if (!visited.contains(n)) {
visited.add(n);
flag = isThereRoute(n, B, visited);
}
}
return flag;
}
所有节点都在Graph类,其中相邻()返回一个邻接表。程序有时可以工作,但在大多数情况下,即使在2个节点之间存在路由,也会打印错误。
此页面上接受的答案可能会有所帮助:http://stackoverflow.com/questions/39071077/finding-path-between -2分在球拍 – rnso