boolean backtrackDFS(v) {
If (SolutionFound(v)) return true;
Mark vertex v as reached.
for (each unreached vertex u adjacenct from v)
if (backtrakDFS(u)) return true;
Unmark vertex v;
return false;
}
ここでなぜUnmark vertex v
必要なのですか?そして、なぜvが再び到達できなくなるような行を追加しても安全なのですか?それは再訪につながるのでしょうか?