bfs用c++实现代码
时间: 2023-06-09 20:07:25 浏览: 103
bfs.rar_BFS+c++_bfs
以下是BFS算法的C语言实现:
```c
#include <stdio.h>
#define MAX_N 100 // 最大节点数
int queue[MAX_N]; // 队列
int head = 0, tail = 0; // 队头,队尾
int visited[MAX_N]; // 访问标记数组
int graph[MAX_N][MAX_N]; // 图的邻接矩阵
int n = 0; // 节点数
void bfs(int s)
{
// 将起点加入队列
queue[tail++] = s;
// 标记起点已访问
visited[s] = 1;
// BFS遍历
while (head != tail) // 当队列非空
{
// 取出队首节点
int u = queue[head++];
// 遍历u的所有邻接点
for (int v = 0; v < n; v++)
{
if (graph[u][v] != 0 && !visited[v])
{
// 将v加入队列
queue[tail++] = v;
// 标记v已访问
visited[v] = 1;
}
}
}
}
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &graph[i][j]);
}
}
bfs(0); // 从节点0开始BFS遍历
return 0;
}
```
如果您有其他问题,请继续提问。
阅读全文