私は2つのノード間のルートがある場合に発見するための関数を記述しようとすると、コードの一部を次のように苦しんでいます:有向グラフ内の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;
}
で隣接リストを返します。プログラムが動作することはありますが、ほとんどの場合、2つのノード間にルートがあってもfalseが出力されます。
をこのページの受け入れ答えは助けになることがあります。http://stackoverflow.com/questions/39071077/finding-path-betweenラップ2点 – rnso