dfs算法c语言
时间: 2023-07-26 17:11:07 浏览: 49
dfs.zip_c语言 dfs算法_dfs算法 c语言_visual c_递归函数
下面是一个使用C语言实现DFS算法的简单示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int visited[MAX_SIZE]; // 标记节点是否被访问过
// 图的邻接矩阵表示
int graph[MAX_SIZE][MAX_SIZE] = {
{0, 1, 1, 0},
{1, 0, 1, 1},
{1, 1, 0, 1},
{0, 1, 1, 0}
};
// DFS搜索函数
void dfs(int node) {
printf("%d ", node); // 访问当前节点
visited[node] = 1; // 标记当前节点已经被访问过
// 遍历当前节点的相邻节点
for (int i = 0; i < MAX_SIZE; i++) {
if (visited[i] == 0 && graph[node][i] == 1) { // 如果相邻节点未被访问过且与当前节点有连边
dfs(i); // 继续遍历
}
}
}
int main() {
// 初始化visited数组
for (int i = 0; i < MAX_SIZE; i++) {
visited[i] = 0;
}
dfs(0); // 从节点0开始进行DFS搜索
return 0;
}
```
以上代码实现了一个简单的DFS搜索,用邻接矩阵表示图,从节点0开始进行DFS搜索,输出遍历的节点序列。该代码仅为示例,实际应用中需要根据具体问题的需求来进行相应的修改。
阅读全文