用c++以邻接矩阵为存储结构建立无向图
时间: 2024-02-15 07:04:36 浏览: 103
无向图的建立和邻接矩阵的输出
5星 · 资源好评率100%
好的,下面是用C++以邻接矩阵为存储结构建立无向图的代码示例:
```cpp
#include <iostream>
using namespace std;
const int MAXN = 100; // 最大顶点数
class Graph {
private:
int n; // 顶点数
int e; // 边数
int matrix[MAXN][MAXN]; // 邻接矩阵
public:
Graph(int n, int e) : n(n), e(e) {
// 初始化邻接矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = 0;
}
}
}
void addEdge(int u, int v) {
// 添加边
matrix[u][v] = 1;
matrix[v][u] = 1;
}
void printGraph() {
// 输出邻接矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
int n, e;
cin >> n >> e; // 输入顶点数和边数
Graph g(n, e);
for (int i = 0; i < e; i++) {
int u, v;
cin >> u >> v; // 输入边的端点
g.addEdge(u, v);
}
g.printGraph();
return 0;
}
```
在这里,我们通过一个 `Graph` 类来表示无向图。它有三个私有成员变量,分别是顶点数 `n`、边数 `e` 和邻接矩阵 `matrix`。在构造函数中,我们首先初始化邻接矩阵。在 `addEdge` 函数中,我们添加边时,将邻接矩阵中对应的元素设为 1。在 `printGraph` 函数中,我们输出邻接矩阵。
在 `main` 函数中,我们首先输入顶点数和边数,然后逐个输入边的端点,并将边添加到图中。最后输出邻接矩阵。
阅读全文