Skip to content

Instantly share code, notes, and snippets.

@YounesCheikh
Created October 11, 2012 19:23
Show Gist options
  • Save YounesCheikh/3874876 to your computer and use it in GitHub Desktop.
Save YounesCheikh/3874876 to your computer and use it in GitHub Desktop.
Parcours en Largeur d'un Graphe
larg := proc (G, x)
local y, z, CarnetDeVisite;
global Visite, OrdreVisite;
Visite := [seq(false, i = 1 .. nops(G))];
Visite[x] := true;
CarnetDeVisite := [x];
OrdreVisite := [];
while CarnetDeVisite <> [] do
y := CarnetDeVisite[1];
CarnetDeVisite := enleve_tete(CarnetDeVisite);
print("Carnet :", CarnetDeVisite, "y=", y, "Visite : ", Visite);
OrdreVisite := ajoutFin(y, OrdreVisite);
for z in G[y] do
if Visite[z] = false then
Visite[z] := true;
CarnetDeVisite := ajoutFin(z, CarnetDeVisite)
end if
end do
end do;
OrdreVisite
end proc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment