说我有以下原始数据:
5 6
1 4 5
2 4 5
2 3 4
3 4 6
其中第一行代表:[number of vertices] [number of edges]
,后续行代表:[index of vertex1] [index of vertex2] [weight]
。我正在考虑做%3
并将数据分成3个字符串作为顶点1,顶点2和权重,但我找不到将这些数据排列成邻接矩阵的正确方法。有什么建议吗?
答案 0 :(得分:0)
Probbaly你需要这个:
#include <stdio.h>
#define MAXVERTICES 10
int main(void)
{
int matrix[MAXVERTICES][MAXVERTICES];
for (int i = 0; i < MAXVERTICES; i++)
for (int j = 0; j < MAXVERTICES; j++)
matrix[i][j] = 0;
int nbvertices, nbedges;
scanf("%d %d", &nbvertices, &nbedges);
for (int i = 0; i < nbvertices; i++)
{
int v1, v2;
int weight;
scanf("%d %d %d", &v1, &v2, &weight);
matrix[v2][v1] = matrix[v1][v2] = weight;
}
return 0;
}
这是非常基本的,没有进行错误检查,最大顶点数是10(MAXVERTICES)。