图采用邻接矩阵的DFS遍历 C语言代码
时间: 2024-11-20 15:37:32 浏览: 34
c代码-邻接矩阵建立图
5星 · 资源好评率100%
C语言中,使用邻接矩阵表示图并进行深度优先搜索(DFS)的基本步骤如下:
首先,定义一个邻接矩阵来存储图的结构。假设我们有n个顶点,矩阵`adj_matrix`的大小为`n x n`,其中`adj_matrix[i][j]`表示从顶点i到顶点j是否有边。
```c
#include <stdio.h>
#define MAX_VERTICES 10 // 假设最多有10个顶点
int adj_matrix[MAX_VERTICES][MAX_VERTICES]; // 邻接矩阵
bool visited[MAX_VERTICES]; // 记录每个顶点是否被访问过
void dfs(int start) {
visited[start] = true; // 标记起始顶点已访问
printf("%d ", start); // 打印起始顶点
// 对于起始顶点的所有邻居,如果未访问,则递归调用dfs
for (int i = 0; i < MAX_VERTICES; i++) {
if (adj_matrix[start][i] && !visited[i]) {
dfs(i);
}
}
}
```
要在C语言中实现邻接矩阵的DFS遍历,你可以按照以下步骤操作:
1. 初始化图的邻接矩阵和访问标记数组。
2. 调用`dfs`函数,传入要开始遍历的顶点(通常选择一个起点,如0)。
3. 函数内部,先标记当前顶点为已访问,然后打印该顶点。
4. 再对所有未访问过的相邻顶点递归调用`dfs`。
请注意,这只是一个基本示例,实际应用中可能需要考虑更复杂的边界条件和错误处理。如果你想要演示这个过程,可以创建一个具体的邻接矩阵实例,然后运行上述代码。
阅读全文