Implantation#

Rappels et exemples Python sur les dictionnaires et compréhensions#

Suivez le tutoriel Comprehensions, Iterators, and Iterables.

Puis analysez les exemples suivants:

l = [3,2,1,0]
[ i**2  for i in l ]
l = ["a", "z", "b"]
d = {l[i] : i for i in range(len(l))}
for v in d.keys():
    print(v)
[(v, 1) for v in l]

Conversions#

Exercice

Choisissez une des structure de données de graphes que l’on a vues (liste d’arêtes, dictionnaire des voisins, dictionnaire d’arêtes, matrice d’adjacence), ou une autre.

Implantez ci-dessous des fonctions Python from_matrix, from_edges, from_neighbor_dict, from_edge_dict. Par exemple, la fonction from_matrix prendra un graphe représenté par une matrice d’adjacence et renverra le même graphe dans la structure de donnée que vous avez choisi.

Testez systématiquement ces fonctions – avec des tests automatiques – sur les exemples de la fiche précédente.

# VOTRE CODE ICI
raise NotImplementedError()

Une classe graphe#

Exercice

Le fichier graph.py contient un squelette de classe pour représenter des graphes. Votre mission pour la prochaine séance est de compléter les méthodes non implantées. Le rapport contient des vérifications automatiques pour votre code. Utilisez le au fur et à mesure pour suivre votre avancement et complétez le.