Bonjour à tous,
je possède une matrice d'adjacence représentant un graphe :
0 1 1 0 1
1 0 1 0 0
1 1 0 0 1
0 0 0 0 1
1 0 1 1 0
Afin de ne pas devoir stocker cette matrice diagonale dans son entièreté, j'utilise la représentation suivante :
1 1 0 1 1 0 0 0 1 1
c'est à dire que je met à la suite les lignes du triangle supérieur.
Cependant, je n'arrive pas à faire la correspondance avec les indices de la représentation de ma chaîne de bits et les noeuds concernés dans le graphe.
J'aimerai pouvoir associer le bit en position 1 dans ma chaine au lien (1,2).
Dans mon cas, on aurait la correspondance suivante :
position 1 = 1 = lien (1,2) existe
position 2 = 1 = lien (1,3) existe
position 3 = 0 = lien (1,4) n'existe pas
position 4 = 1 = lien (1,5) existe
position 5 = 1 = lien (2,3) existe
position 6 = 0 = lien (2,4) n'existe pas
etc...
Pour le code, j'ai débuté comme ceci :
J'ai essayé de jouer avec les modulos (sur le nombre de noeuds du graphe) mais je n'y arrive pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for(i=0; i<NBITS; i++) { if(chaine[i] == 1) { Noeud source = ??? Noeud dest = ??? } }
Merci d'avance.
Partager