请给我一段深度优先搜索代码
时间: 2024-04-17 09:25:38 浏览: 43
使用Python实现深度优先搜索的代码
当然,下面是一个使用深度优先搜索(DFS)算法来遍历图的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义图的邻接表表示
vector<vector<int>> graph;
// 记录节点是否已经被访问
vector<bool> visited;
// 深度优先搜索函数
void dfs(int node) {
// 标记当前节点为已访问
visited[node] = true;
cout << "访问节点:" << node << endl;
// 遍历当前节点的邻接节点
for (int i = 0; i < graph[node].size(); i++) {
int neighbor = graph[node][i];
// 如果邻接节点未访问,则进行递归深度优先搜索
if (!visited[neighbor]) {
dfs(neighbor);
}
}
}
int main() {
// 构建图的邻接表表示
int numNodes, numEdges;
cout << "请输入图的节点数和边数:";
cin >> numNodes >> numEdges;
graph.resize(numNodes);
visited.resize(numNodes, false);
cout << "请输入图的边信息:" << endl;
for (int i = 0; i < numEdges; i++) {
int u, v;
cin >> u >> v;
// 无向图,需要把边加入两个方向
graph[u].push_back(v);
graph[v].push_back(u);
}
int startNode;
cout << "请输入起始节点:";
cin >> startNode;
cout << "深度优先搜索结果:" << endl;
dfs(startNode);
return 0;
}
```
这段代码实现了一个基本的深度优先搜索算法来遍历图。用户需要输入图的节点数、边数以及具体的边信息,然后选择一个起始节点,程序会输出从起始节点开始的深度优先搜索结果。
希望这个示例代码能帮助到您理解深度优先搜索算法!如果有任何疑问,请随时提问。
阅读全文