Chapitre 3
3.2.1 Version récursive du parcours en profondeur d'un graphe.
3.2.1.1 Algorithme général
Le programme principal a la structure suivante :
var i : integer ;
gr : GRAPHE ;
marque : array[1..n] of boolean ;
…………………………………………………….
begin
for i:=1 to n do marque[i]:=false ;
for i:=1 to n do
if not (marque[i]) then prof(i,gr,marque)
end;
La procédure récursive prof de parcours en profondeur ressemble à :
procedure prof(i : Integer; g : GRAPHE; var M : array[1..n] of boolean);
{ s est un sommet où commence le parcours }
var i,v : Integer ; { v est un sommet }
M[s] := true ;
{ on marque le sommet s }
{ 1 : première rencontre avec s }
for j :=1 to n do d°+ de s dans g do
begin
v:=j ième- succ-de s dans g ; { rencontre de l’arc (s,v) à l’aller }
if not (M[v]) then prof(v,g,M) ; { rencontre de l’arc (s,v) au retour }
end
{ 2 : dernière rencontre avec s }
end prof ;