我用下面的代碼段中掙扎,因爲我嘗試寫一個函數查找,如果有兩個節點之間的路線:在有向圖中找到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