C++深度优先搜索代码
时间: 2023-05-14 22:06:52 浏览: 102
深度优先搜索c++代码
以下是一个简单的 C 语言深度优先搜索(DFS)代码示例:
```c
#include <stdio.h>
#define MAX_N 100
int n; // 图中节点的数量
int g[MAX_N][MAX_N]; // 图的邻接矩阵
int visited[MAX_N]; // 标记节点是否已经被访问
void dfs(int u) {
visited[u] = 1; // 标记节点 u 已经被访问
printf("%d ", u); // 输出节点 u 的编号
for (int v = 0; v < n; v++) {
if (g[u][v] && !visited[v]) { // 如果节点 u 和节点 v 之间有边,并且节点 v 没有被访问过
dfs(v); // 递归访问节点 v
}
}
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &g[i][j]);
}
}
dfs(0); // 从节点 0 开始深度优先搜索
return 0;
}
```
这段代码实现了一个简单的深度优先搜索算法,用于遍历一个给定的图。在这个算法中,我们首先标记起点节点已经被访问过,然后递归访问与其相邻的未被访问过的节点,直到所有节点都被访问过为止。
阅读全文