以下是深度优先搜索的递归实现代码的示例:
void dfsRecursive(int start, vector graph[], bool visited[]) {
visited[start] = true;
cout << start << " ";
for (int i = 0; i < graph[start].size(); i++) {
int current = graph[start][i];
if (!visited[current]) {
dfsRecursive(current, graph, visited);
}
}
}
int main() {
int V, E;
cin >> V >> E;
vector graph[V];
for (int i = 0; i < E; i++) {
int u, v;
cin >> u >> v;
// Adding edges
graph[u].push_back(v);
graph[v].push_back(u);
}
// Initializing required variables
bool visited[V];
memset(visited, false, sizeof(visited));
// DFS on graph from vertex 0
dfsRecursive(0, graph, visited);
return 0;
}
如果你遇到编译错误,可以先尝试检查拼写、语法和语义错误。请确保你使用的所有函数、变量和头文件名称正确无误,并且在使用前都已经定义过了。另外,如果你的程序中使用了类似于 -std=c++11
这样的编译选项,请检查是否有语法错误导致编译失败。如果你仍然无法解决问题,请将提示信息或错误信息复制并粘贴到 Google 搜索栏中,以便更快地找到解决方案。