Le graphe biparti, ou le coloriage en deux couleurs
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 13 — Parcours de graphes
Énoncé
Écrire une fonction déterminant si un graphe non orienté peut être colorié avec deux couleurs de façon à ce que deux sommets reliés soient toujours de couleurs différentes.
Corrigé
On utilise un BFS pour propager deux couleurs alternées ( et ) le long des branches du graphe :
def est_biparti(G: dict) -> bool:
couleur = {}
for depart in G:
if depart in couleur:
continue
couleur[depart] = 0
file = deque([depart])
while file:
s = file.popleft()
for v in G[s]:
if v not in couleur:
couleur[v] = 1 - couleur[s] # Alternance 0 / 1
file.append(v)
elif couleur[v] == couleur[s]:
return False # Conflit de couleur
return TrueLes autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.