生成一个深度优先搜索的算法
时间: 2023-10-12 07:18:05 浏览: 34
很高兴回答你的问题。关于生成深度优先搜索算法的实现方法,具体请参考下面的示例代码:
```
// 深度优先搜索算法
void dfs(int u) {
vis[u] = true; // 标记已经访问过
for (int i = head[u]; i != -1; i = nxt[i]) {
int v = ver[i]; // u 的邻居节点 v
if (!vis[v]) {
dfs(v); // 递归访问 v 节点
}
}
}
// 主函数里面调用
int main() {
// 初始化
memset(head, -1, sizeof(head)); // 邻接表初始化
memset(vis, false, sizeof(vis)); // 标记数组初始化
// 添加节点和边
addEdge(1, 2); addEdge(1, 3);
addEdge(2, 4); addEdge(2, 5);
addEdge(3, 6); addEdge(3, 7);
// 执行深度优先搜索
dfs(1);
// 输出搜索结果
for (int i = 1; i <= n; i++) {
if (vis[i]) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
以上就是一个深度优先搜索算法的示例代码。当然,实际情况中根据具体问题可能需要做出相应的修改,如添加适当的剪枝、记录搜索路径等等。希望对你有所帮助。