蓝桥杯bfs c++模板
时间: 2023-09-15 18:17:55 浏览: 107
2021年第十二届蓝桥杯决赛 C++大学A组 真题.zip
以下是 BFS 算法的 C++ 代码模板:
```cpp
#include <iostream>
#include <queue>
#include <vector>
#include <cstring>
using namespace std;
const int maxn = 1005;
vector<int> G[maxn];
bool vis[maxn];
void bfs(int s) {
queue<int> q;
memset(vis, false, sizeof(vis));
q.push(s);
while(!q.empty()) {
int u = q.front(); q.pop();
if(vis[u]) continue; // 如果该点已经被访问过,则跳过
vis[u] = true; // 标记该点已经被访问过
cout << u << " "; // 输出遍历序列
for(int i = 0; i < G[u].size(); i++) {
int v = G[u][i];
if(!vis[v]) {
q.push(v);
}
}
}
}
int main() {
int n, m;
cin >> n >> m; // 输入节点数和边数
for(int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
G[u].push_back(v);
G[v].push_back(u); // 注意建立无向边
}
bfs(1); // 从节点1开始遍历
return 0;
}
```
请问还有什么可以帮助您的吗?
阅读全文