Discussione: Pascal: Liste
View Single Post
Old 11-08-2003, 13:12   #5
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Sono riuscito a risolvere il problema in questo modo, la mia intenzione è però non fare uso della funzione locale. Vediamo che posso fare grazie alle tue indicazioni, ciao

Codice:
Procedure EliminaMax(var lis1: puntatore; max: integer);
var
  paux: puntatore; //globale ad EliminaMax

(*TrovaMax è una funzione locale ad EliminaMax*)
Function TrovaMax(lis1: puntatore; max: integer):integer;
begin
if lis1<>NIL then
  begin
  if lis1^.info > max then max:=lis1^.info;
max:=TrovaMax(lis1^.next, max);
  end;
  TrovaMax:=Max;
end;{Fine della funzione TrovaMax}

(*Da qui in poi implementiamo EliminaMax*)
begin
if lis1<>NIL then
  if lis1^.info=TrovaMax(lis1,max) then
     begin
     paux:=lis1;
     lis1:=lis1^.next;
     dispose(paux);
     end
   else
     EliminaMax(lis1^.next,TrovaMax(lis1,max));
end;
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso