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 :

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 = ???
                }
}
J'ai essayé de jouer avec les modulos (sur le nombre de noeuds du graphe) mais je n'y arrive pas.

Merci d'avance.