guarda un po se il codice che posto è quello che ti interessa a te, o almeno ti puo dare una mano...
codice:
#include <stdio.h>
#include <stdlib.h>
#define n_nodi 3
void stampa ( int matrice_incidenza [][n_nodi]);
int main () {
int matrice_incidenza[n_nodi][n_nodi] ={0};
matrice_incidenza[0][1] = 1; // metto gli archi e il loro valori
matrice_incidenza[0][2] = 2;
matrice_incidenza[1][2] = 3;
matrice_incidenza[1][0] = 4;
matrice_incidenza[2][0] = 5;
matrice_incidenza[2][1] = 6;
stampa(matrice_incidenza);
return 0;
}
void stampa( int matrice_incidenza[][n_nodi]) {
int i = 0;
int j = 0;
printf("Matrice incidenza pesata: \n");
for (j = 0; j <n_nodi; j++) {
for (i = 0; i < n_nodi; i++)
printf("[%d] ", matrice_incidenza[i][j]);
printf("\n");
}
printf("Grafo :\n");
for (j = 0; j <n_nodi; j++) {
printf("[%d]\n", j);
for (i = 0; i < n_nodi; i++)
if ( matrice_incidenza[j][i] != 0)
printf("-- %d --> [%d]\n", matrice_incidenza[j][i], i);
printf("\n");
}
}
l'output di questo codice è :
Matrice incidenza pesata:
[0] [4] [5]
[1] [0] [6]
[2] [3] [0]
Grafo :
[0] //nodo da cui partono gli archi
-- 1 --> [1]
-- 2 --> [2]
[1]
-- 4 --> [0]
-- 3 --> [2]
[2]
-- 5 --> [0]
-- 6 --> [1]