广度优先遍历(邻接矩阵BFS)c++实现
时间: 2023-11-21 14:56:36 浏览: 231
以下是邻接矩阵BFS的C++实现:
```c++
#include <iostream>
#include <queue>
using namespace std;
const int MAXN = 100; // 最大顶点数
int G[MAXN][MAXN]; // 邻接矩阵
bool vis[MAXN]; // 标记数组
void BFS(int s, int n) { // s为起点,n为顶点数
queue<int> q;
q.push(s);
vis[s] = true;
while (!q.empty()) {
int u = q.front();
q.pop();
cout << u << " ";
for (int v = 0; v < n; v++) {
if (G[u][v] && !vis[v]) {
q.push(v);
vis[v] = true;
}
}
}
}
int main() {
int n, m; // n为顶点数,m为边数
cin >> n >> m;
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
G[u][v] = G[v][u] = 1; // 无向图
}
BFS(0, n);
return 0;
}
```
阅读全文