devc++下,基于邻接矩阵实现图的广度优先周游代码
时间: 2024-12-29 09:31:42 浏览: 11
在Dev-C++环境下,使用邻接矩阵实现图的广度优先搜索(BFS)可以分为以下几个步骤:
```cpp
#include <iostream>
#include <vector>
using namespace std;
#define MAXN 100 // 图的最大节点数
// 邻接矩阵表示图
int graph[MAXN][MAXN];
// 检查某个位置是否有效
bool isValid(int x, int y) {
return (x >= 0 && x < MAXN && y >= 0 && y < MAXN);
}
// 广度优先搜索函数
void bfs(int start) {
vector<bool> visited(MAXN, false); // 记录已访问节点
queue<int> q; // 使用队列进行BFS
visited[start] = true;
q.push(start);
while (!q.empty()) {
int u = q.front(); // 取出队首元素
cout << u << " "; // 输出当前节点
// 遍历相邻节点
for (int v = 0; v < MAXN; ++v)
if (graph[u][v] == 1 && !visited[v]) {
visited[v] = true;
q.push(v); // 将未访问的邻居加入队列
}
// 出队并继续处理下一个节点
q.pop();
}
}
int main() {
// 初始化图的邻接矩阵...
// 例如,你可以在这里设置每个节点与其邻居的关系,将值1表示有边连接,0表示无连接。
int startNode; // 起始节点
cout << "请输入起始节点: ";
cin >> startNode;
bfs(startNode);
cout << endl << "广度优先遍历结束" << endl;
return 0;
}
```
阅读全文