2015-05-26 66 views
-1

说我有以下原始数据:如何从输入创建一个邻接矩阵?

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

当然我是这么做的,我只是困惑了一下,也是新来的C so(yea ik) – jimo

回答

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