C++邻接矩阵存储创建无向网
时间: 2023-10-03 22:09:20 浏览: 107
好的,我来回答你的问题。
在C++中,我们可以使用二维数组来表示邻接矩阵。对于无向网,我们需要将每个边的权值存储在矩阵的两个位置上。具体实现步骤如下:
1. 定义二维数组,表示邻接矩阵。假设有n个顶点,则数组大小为n*n。
```cpp
const int MAXN = 100; // 最大顶点数
int G[MAXN][MAXN]; // 邻接矩阵
```
2. 初始化邻接矩阵。对于无向网,需要将每个矩阵元素的值初始化为无穷大。
```cpp
const int INF = 0x3f3f3f3f; // 无穷大
memset(G, INF, sizeof(G)); // 初始化为无穷大
```
3. 创建边。对于无向网,需要将每条边的权值存储在矩阵的两个位置上。
```cpp
int u, v, w; // u、v为边的两个顶点,w为边的权值
cin >> u >> v >> w;
G[u][v] = G[v][u] = w; // 存储边的权值
```
完整代码如下:
```cpp
const int MAXN = 100; // 最大顶点数
const int INF = 0x3f3f3f3f; // 无穷大
int G[MAXN][MAXN]; // 邻接矩阵
int main() {
int n, m; // n为顶点数,m为边数
cin >> n >> m;
memset(G, INF, sizeof(G)); // 初始化为无穷大
for (int i = 1; i <= m; i++) {
int u, v, w; // u、v为边的两个顶点,w为边的权值
cin >> u >> v >> w;
G[u][v] = G[v][u] = w; // 存储边的权值
}
return 0;
}
```
希望能够帮到你!
阅读全文