使用邻接矩阵构建无向带权图C语言
时间: 2023-06-28 08:04:48 浏览: 138
以下是使用邻接矩阵构建无向带权图的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTICES 100 // 最大顶点数
typedef struct GraphType {
int n; // 顶点数
int weight[MAX_VERTICES][MAX_VERTICES]; // 邻接矩阵
} GraphType;
// 初始化图
void init(GraphType* g, int n) {
int i, j;
g->n = n;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
g->weight[i][j] = 0;
}
}
}
// 添加边
void add_edge(GraphType* g, int from, int to, int weight) {
g->weight[from][to] = weight;
g->weight[to][from] = weight;
}
int main() {
GraphType g;
int i, j, n, m, from, to, weight;
printf("请输入图的顶点数和边数:");
scanf("%d%d", &n, &m);
init(&g, n);
printf("请输入每条边的起点、终点和权值:\n");
for (i = 0; i < m; i++) {
scanf("%d%d%d", &from, &to, &weight);
add_edge(&g, from, to, weight);
}
printf("图的邻接矩阵表示如下:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", g.weight[i][j]);
}
printf("\n");
}
return 0;
}
```
这里使用了一个结构体 `GraphType` 来表示图,其中 `n` 表示顶点数,`weight` 是邻接矩阵。`init` 函数用于初始化图,将邻接矩阵中所有元素设置为0。`add_edge` 函数用于添加一条边,将起点和终点的邻接矩阵元素设置为权值。主函数中通过输入顶点数和边数,以及每条边的起点、终点和权值来构建无向带权图,并输出邻接矩阵。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)