Einzelnen Beitrag anzeigen

Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: binärbaum -> alle blätter entfernen

  Alt 20. Nov 2004, 16:08
Delphi-Quellcode:
procedure TForm1.herbst;

  function rek (VAR p:PKnot):PKnot;
   BEGIN
    result:=p;
    IF (p^.left=NIL) and (p^.right=NIL) THEN
     begin
      result:=nil;
      dispose(p);
     end
    ELSE
     begin
      if p.left<>nil then p.left:=rek(p.left);
      if p.right<>nil then p.right:=rek(p.right);
     end;
   END

begin
root:=rek(root);
end;
So müsste es eigentlich funktionieren!
Das mit der Function statt procedure ist auf jeden Fall sehr wichtig, da ansonsten leere Vewrweise entstehen!
Thomas
  Mit Zitat antworten Zitat