写一段深度优先遍历的C语言程序
时间: 2023-10-17 09:06:16 浏览: 44
好的,以下是深度优先遍历的C语言程序:
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTEX_NUM 100 // 顶点个数最大值
int visited[MAX_VERTEX_NUM]; // 记录节点是否被访问过
int graph[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 存储图的邻接矩阵
int vertex_num; // 顶点个数
// 深度优先遍历
void dfs(int vertex) {
visited[vertex] = 1; // 标记节点已经被访问
printf("%d ", vertex); // 输出当前节点
// 遍历当前节点的邻接节点
for (int i = 0; i < vertex_num; i++) {
if (graph[vertex][i] && !visited[i]) { // 如果有边相连且未被访问
dfs(i); // 递归访问邻接节点
}
}
}
int main() {
// 输入图的顶点个数和邻接矩阵
scanf("%d", &vertex_num);
for (int i = 0; i < vertex_num; i++) {
for (int j = 0; j < vertex_num; j++) {
scanf("%d", &graph[i][j]);
}
}
// 初始化 visited 数组
for (int i = 0; i < vertex_num; i++) {
visited[i] = 0;
}
// 从起点开始深度优先遍历
dfs(0);
return 0;
}
希望这个程序能够帮到你!如果你有其它问题,欢迎继续提问。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)