Comment représenter et parcourir un graphe en Python ?
En utilisant une matrice d'adjacence (tableau numpy 2D) pour un accès au poids d'une arête
L'objectif
Stocker un graphe dans un tableau afin d'accéder instantanément à l'existence ou au poids d'une arête entre deux sommets.
Le principe
Pour un graphe à sommets numérotés de à , la matrice d'adjacence vérifie ssi est une arête (et si le graphe est non orienté) ; pour un graphe pondéré, on remplace par le poids de l'arête.
La méthode
- 1Je numérote les sommets de à et j'initialise un tableau de taille rempli de zéros avec
np.zeros((n,n)). - 2Pour chaque arête du graphe, je pose
M[i][j] = 1(etM[j][i] = 1si le graphe est non orienté), ou le poids si le graphe est pondéré. - 3Pour exploiter , je lis directement
M[i][j]pour savoir si et sont voisins, et je compte le nombre d'arêtes par en cas non orienté.
Exemple corrigé
Difficulté croissante de 1 à 3
Exercices aujourd'hui0 / 3
Prêt à t'entraîner ?
Génère un exercice personnalisé sur cette méthode et entraîne-toi avec la correction IA.