2011-11-18 102 views
1

輸入是這樣如何使鄰接矩陣這樣的輸入

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); 
+0

我希望你的意思是'array =(int *)malloc(sizeof(int)* numVetex);'?並且你將'array'定義爲'int * array;'? –

+0

所以我假設這是一個無向圖? – Jacob

+0

是無向圖 – Silvester

回答

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