用C++写个深度优先搜索
时间: 2023-05-10 14:55:42 浏览: 119
好的,以下是一个简单的用 C 语言实现的深度优先搜索算法:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_VERTICES 100
bool visited[MAX_VERTICES];
int graph[MAX_VERTICES][MAX_VERTICES];
int num_vertices;
void dfs(int vertex) {
visited[vertex] = true;
printf("%d ", vertex);
for (int i = 0; i < num_vertices; i++) {
if (graph[vertex][i] && !visited[i]) {
dfs(i);
}
}
}
int main() {
// 读入图的顶点数和边数
scanf("%d", &num_vertices);
int num_edges;
scanf("%d", &num_edges);
// 读入边并建图
for (int i = 0; i < num_edges; i++) {
int u, v;
scanf("%d %d", &u, &v);
graph[u][v] = graph[v][u] = 1;
}
// 从第一个顶点开始遍历
dfs(0);
return 0;
}
```
这个程序实现了一个简单的深度优先搜索算法,它可以遍历一个无向图中的所有顶点,并输出它们的编号。
阅读全文