私は以下のリンクに従っています。BFSとDFSを使用してグラフ内の2つのノード間のパスを見つける
DFS:http://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/DepthFirstPaths.java.html
pathTo方法は、この
public Iterable<Integer> pathTo(int v) {
validateVertex(v);
if (!hasPathTo(v)) return null;
Stack<Integer> path = new Stack<Integer>();
for (int x = v; x != s; x = edgeTo[x])
path.push(x);
path.push(s);
return path;
}
BFSのようなものです:for (x = v; distTo[x] != 0; x = edgeTo[x])
である理由この
public Iterable<Integer> pathTo(int v) {
validateVertex(v);
if (!hasPathTo(v)) return null;
Stack<Integer> path = new Stack<Integer>();
int x;
for (x = v; distTo[x] != 0; x = edgeTo[x])
path.push(x);
path.push(x);
return path;
}
私の疑問があるようpathTo方法があるhttp://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/BreadthFirstPaths.java.html
BFSおよびDFS内のfor (int x = v; x != s; x = edgeTo[x])
BFSのpathToメソッドでdistTo[x] != 0
の代わりにx != s
を使用すると、何が問題になりますか?
kありがとう!!!!!!!!! –