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
| procedure fusion(var pt3:pointeur; pt1,pt2:pointeur);
var pc1,pc2,pc3,prc:pointeur;
begin
pc1:=pt1; pc2:=pt2; pc3:=nil;
while (pc1<>nil) and (pc2<>nil) do
begin
if (pc1^.valeur < pc2^.valeur) then
begin
if pc3=nil then begin pt3:=pc1; pt3:=prc; end
else pc3^.suivant:=pc1;
pc3:=pc1;
pc3:=prc^.suivant;
prc:=prc^.suivant;
pc1:=pc1^.suivant;
end
else begin
if pc3=nil then begin pt3:=pc2; pt3:=prc; end
else pc3^.suivant:=pc2;
pc3:=pc2;
pt3:=prc^.suivant;
prc:=prc^.suivant;
pc2:=pc2^.suivant;
end;
end;
if pc1=nil then prc^.suivant:=pc2
else prc^.suivant:=pc1;
end; |
Partager