ここでDFS擬似コードを見ています
dfs(node start) {
stack s;
s.push(start);
while (s.empty() == false) {
top = s.top();
s.pop();
mark top as visited;
check for termination condition
add all of top's unvisited neighbors to the stack.
mark top as not visited;
}
}
dfs(node current) {
mark current as visited;
visit all of current's unvisited neighbors by calling dfs(neighbor)
mark current as not visited;
}
作成者が、すべての隣接する頂点を訪問した後、頂点を訪問されていないものとしてマークするのはなぜですか?それはここで必要なステップですか。頂点を検索しているだけなので、頂点を未訪問としてマークせずに機能するべきではありませんか?
ここでの別のリンクは、頂点を訪問済みとして設定した後、実際には頂点を未訪問としてマークしません。