如何使这个输入的邻接矩阵

时间:2011-11-18 12:43:26

标签: c arrays graph

输入就像这样

5 // is # of vertices
1 1 0 1 // 1<->2 1<->3 1<->4 1<->5
0 0 0 // 2<->3 2<->4 2<->5
0 1 // 3<->4 3<->5
1 // 4<->5

我想在插入输入时制作邻接矩阵。怎么做?

我已经制作了像这样的矩阵

array = (int)malloc(sizeof(int)*numVetex);

1 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点。这是其中之一:

    int **array;
    int numVertex;
    int i,j;

    scanf("%d",&numVertex);
    array = malloc(sizeof(int*) * numVertex);
    for(i=0;i<numVertex;i++) {
            array[i] = malloc(sizeof(int) * numVertex);
    }
    for(i=0;i<numVertex-1;i++) {
            for(j=i+1;j<numVertex;j++) {
                    scanf("%d",&array[i][j]);
                    array[j][i] = array[i][j];
            }
            array[i][i] = 0;
    }
    // use array 
    // free it