如何从输入创建邻接矩阵?

时间:2015-05-26 12:12:32

标签: c graph

说我有以下原始数据:

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和权重,但我找不到将这些数据排列成邻接矩阵的正确方法。有什么建议吗?

1 个答案:

答案 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)。