用64位DEVC++实现以下功能⑴ 建立无向图的邻接矩阵存储; ⑵ 对建立的无向图,进行深度优先遍历;
时间: 2023-12-03 07:07:34 浏览: 82
以下是用64位DEVC++实现建立无向图邻接矩阵存储和深度优先遍历的代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
const int MAXN = 100; // 最大结点数
int graph[MAXN][MAXN]; // 邻接矩阵
bool visited[MAXN]; // 记录结点是否被访问过
int n, m; // 结点数和边数
void dfs(int u) {
visited[u] = true; // 标记结点u被访问过
cout << u << " "; // 输出结点u
// 访问结点u的所有未被访问过的邻居结点
for (int v = 0; v < n; v++) {
if (graph[u][v] && !visited[v]) {
dfs(v);
}
}
}
int main() {
// 输入结点数和边数
cin >> n >> m;
// 建立邻接矩阵
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
graph[u][v] = graph[v][u] = 1; // 无向图,所以需要连通两个方向
}
// 深度优先遍历
for (int u = 0; u < n; u++) {
if (!visited[u]) {
dfs(u);
}
}
return 0;
}
```
使用方法:
1. 在 DEVC++ 中新建一个空项目。
2. 复制上述代码到源文件中。
3. 编译并运行程序。
4. 根据程序提示输入结点数和边数,以及每条边连接的两个结点。
5. 程序将输出深度优先遍历的结果。
阅读全文