建立无向图的邻接矩阵存储;
时间: 2023-12-08 21:05:16 浏览: 90
为了建立无向图的邻接矩阵存储,我们需要进行以下步骤:
1.定义一个二维数组G,其中G[i][j]表示顶点i和顶点j之间的边的权重。
2.将所有的G[i][j]初始化为0。
3.对于每一条边(i,j),将G[i][j]和G[j][i]的值设置为1(或者边的权重,如果有的话)。
下面是一个示例代码,用于建立一个无向图的邻接矩阵存储:
```c
#define MAXN 100 // 最大顶点数
typedef int Mgraph[MAXN+1][MAXN+1]; // 邻接矩阵类型
void create_mg(Mgraph G, int n, int e) {
int i, j, k, w;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
G[i][j] = 0; // 初始化邻接矩阵
}
}
for (k = 1; k <= e; k++) {
printf("请输入第%d条边的起点、终点和权重:", k);
scanf("%d%d%d", &i, &j, &w);
G[i][j] = w;
G[j][i] = w; // 无向图,需要设置G[j][i]的值
}
}
void output_mg(Mgraph G, int n) {
int i, j;
for (i = 1; i <= n; i++) {
printf("\n");
for (j = 1; j <= n; j++) {
printf("%5d", G[i][j]);
}
}
printf("\n");
}
```
其中,create_mg函数用于创建邻接矩阵,output_mg函数用于输出邻接矩阵。在create_mg函数中,我们首先将邻接矩阵G的所有元素初始化为0,然后对于每一条边(i,j),将G[i][j]和G[j][i]的值设置为1(或者边的权重,如果有的话)。在output_mg函数中,我们简单地遍历邻接矩阵,并输出每个元素的值。
阅读全文