用C语言编写程序实现带权图的邻接矩阵存储,并输出邻接矩阵。输入第一行为结点个数,第二行开始为边的信息
时间: 2024-01-22 21:19:21 浏览: 71
以下是基于邻接矩阵存储带权图的C语言程序代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NODE 100 // 最大结点数
int main()
{
int n, i, j;
int graph[MAX_NODE][MAX_NODE]; // 邻接矩阵
scanf("%d", &n);
for (i = 1; i <= n; ++i) {
for (j = 1; j <= n; ++j) {
graph[i][j] = 0; // 初始化矩阵
}
}
int m; // 边数
scanf("%d", &m);
for (i = 1; i <= m; ++i) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w); // 输入边的信息
graph[u][v] = w; // 存储边的信息
graph[v][u] = w; // 无向图存储两个方向的边
}
// 输出邻接矩阵
for (i = 1; i <= n; ++i) {
for (j = 1; j <= n; ++j) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
return 0;
}
```
程序首先定义一个常量 `MAX_NODE` 表示最大结点数,然后定义了一个 `graph` 数组作为邻接矩阵。程序通过输入结点个数 `n` 和边的信息,使用循环遍历矩阵,将所有元素初始化为0,然后存储每一条边的信息到邻接矩阵中。最后,程序通过嵌套循环遍历邻接矩阵,并输出每个元素的值。
阅读全文