AJOUT(v,SD)
tant que SD n’est pas vide faire
u←− RET(SD)
(FEP) Marquer uvisit´e
Pour tout x∈N(u)non-visit´e faire
(FEL) Marquer xvisit´e
AJOUT(x,SD)
Dans les exercices suivant, vous pouvez parfois modifier l’agorithme g´en´erique FEX,
parfois il vaut mieux faire la FEP et la FEL s´eparement.
Exercice 1 On peut num´eroter les sommets dans l’ordre dans lequel on les visite. Modifiez
l’algorithme pour qu’il le fasse.
Exercice 2 La FEP et la FEL cr´ee chacune une arborescence (si le graphe est connexe)
avec comme racine le premier sommet choisi. Modifier l’algorithme pour qu’il retourne cette
arborescence.
Exercice 3 Si le graphe est orient´e, on peut suivre les arcs dans le bon sens. Modifier
l’algorihme pour le faire.
Exercice 4 Pour trouver un ordre topologique d’un graphe orient´e D= (V, A), on num´erote
les sommets par une FEP, mais au moment o`u la proc´edure fait demi-tour, i.e. au moment
ou un sommet n’a plus de voisin non-visit´es (comme on a vu en classe, pour obtenir l’ordre
topologique, on inverse cette num´erotation). Modifier l’algorithme pour qu’il soit retourne
un ordre topologique de D, soit rentourne un circuit en disant qu’un tel ordre n’existe pas
parce que le graphe contient un circuit.
Consid´erons la FEP. On commence par un sommet que l’on prend comme racine d’une
arborescence. Quand on visite un sommet upour la premi`ere fois (comme enfant du sommet
vque l’on vient de visiter), on lui attribue un num´ero f ep(u) (le suivant, dans l’ordre, la
racine ayant le num´ero 1) et on “mets” (implicitement, m`eme si l’exercice 2 vous demande
de rendre l’op´eration explicite) l’arˆete uv dans l’arborescence. Si xy est une arˆete du graphe
qui n’est dans l’abroberescence cr´ee par la FEP, elle relie forc´ement deux sommets d’une
mˆeme branche de l’arborescence, i.e., l’un des deux sommets est descendant de l’autre.
Exercice 5 Pourquoi?
Dans ce cas tous les sommets entre xet ysur la branche sont dans un cycle et on ne peut
pas les d´econnecter entre eux par l’enl`evemen d’un seul sommet. Ceci sugg`ere une proc´edure
pour trouver les points d’articulation et des blocs d’un graphe (voir les d´efinitions).
En faisant une FEP, ´etiqueter chaque sommet ulors de la premi˜ere visite par une couple
(fep(u), up(u)); cette premi`ere fois up(u) = f ep(u). A chaque visite ult´erieure de u– i.e. en
2