class Graphe: """un graphe comme un dictionnaire d'adjacence""" def __init__(self): self.adj = {} def ajouter_sommet(self, s): if s not in self.adj: self.adj[s] = set() def ajouter_arc(self, s1, s2): self.ajouter_sommet(s1) self.ajouter_sommet(s2) self.adj[s1].add(s2) def arc(self, s1, s2): return s2 in self.adj[s1] def sommets(self): return list(self.adj) def voisins(self, s): return self.adj[s]