DFS策略中的更正

时间:2019-07-07 07:47:05

标签: algorithm depth-first-search

我第一次尝试做DFS,这是我想到的代码。 有人可以指导我为什么我的DFS代码错误吗?

void DFS(vector<vector<int>>& adj, vector<bool>& visited, int x) {
    if (!visited[x]) {
        visited[x] = true;
        cout << x << " ";
        for (int i = 0; i < adj[x].size(); i++) {
            DFS(adj, visited, adj[x][i]);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您必须在退出节点之前重设visited。否则,您只能访问每个节点一次

在if条件的末尾,您需要添加visited[x] = false