Suppression du maximum d'une liste
On demande d'écrire une procédure ou fonction qui modifie une telle liste.
La modification consiste à supprimer de cette liste l'occurence du maximum lorsque celui-ci n'est présent qu'une seule fois.
Si le maximum et présent pleusieurs fois, ne rien faire.
J'ai procédé de cette manière mais je crois qu'il y a mieux à faire :
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
|
procedure supprimermax(var L:liste);
var p,maxi:liste;
k:cardinal;
begin
k:=1;
p:=L^.svt;
maxi:=L;
while p<>nil do
begin
if maxi^.info=p^.info then
inc(k);
if (p^.info>maxi^.info) then
begin
maxi:=p;
k:=1;
end;
p:=p^.svt;
end;
if k=1 then
begin
supprimerdeliste(maxi^.info,L);
writeln( 'le maximun est supprimer: ');
end;
end; |