parcours d'un grapphe en largeur
bonjour a tous,
voila je cherche l'implementationen pascal de l'algorithme de parcours d'un graphe en largeur,ceci dis l'algorithme j'ai pu l'avoir,mais c'est juste que je suis tombée sur des algorithmes qui utilisent une file ,et dans ma structure de données je veux juste un tableau qui contient les somets de mon graphe est une liste qui contient les successeurs de chaque sommet
merci
Parcours en largeur d'un graphe
Bonjour,
j'ai farfouillé dans mes archives datant de 2003, j'ai trouvé ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
procedure recherche_chemin;
var p,q:integer;
begin
if n=0 then writeln('Le graphe est vide...')
else
begin
write('entrer l''extrémité initiale du chemin:');readln(s1);
write('entrer l''extrémité finale du chemin:');readln(s2);
if est_present(s1) and est_present(s2) then
begin
if chemin_existe(s1,s2) then
begin
p:=1;
c1:=s2;
chm[p]:=c1;
while (c1<>s1) do
begin
p:=p+1;
c1:=sommets[pred(c1)^.val];
chm[p]:=c1;
end;
writeln('*****Voici le chemin recherch*****');
for q:=p downto 1 do
begin
if q=1 then
write(chm[q])
else
write(chm[q],'ÄÄ>');
end;
end;
end;
if (not(est_present(s1)) or not(est_present(s2)))or(not(chemin_existe(s1,s2))) then
write('il n''xiste pas un chemin entre ',s1,' et ',s2);
end;
if n=0 then
begin
writeln;
write('appuyez sur une touche pour continuer...');
readkey;
end;
end; |
Je sais que le code n'est pas indenté, peu clair, contient des anomalies, peut-être que ça marche pas, j'ai bien dit qu'il s'agissait d'un vieux programme, j'espère qu'il vous aidera.
Bon cour@ge.