home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qpdemo / beispiel / sorttree.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-08-24  |  1.3 KB  |  57 lines

  1.  
  2. PROGRAM Sorttree;
  3.  
  4. TYPE Zeiger = ^Knoten;
  5.  
  6.      Knoten =   RECORD
  7.         Links, Rechts : Zeiger;
  8.         Inhalt        : Integer
  9.         END;
  10.  
  11. VAR N : Integer;
  12.     Wurzel : Zeiger;
  13.  
  14. PROCEDURE Druckebaum (Lauf : Zeiger; Stelle : Integer);
  15.   VAR i : Integer;
  16.   BEGIN
  17.    IF Lauf <> Nil THEN    { noch weitere Knoten vorhanden }
  18.    WITH Lauf^ DO BEGIN
  19.      Druckebaum (Rechts, Stelle + 1);
  20.      FOR i := 1 TO Stelle DO Write (' ':7);
  21.      Write ('  I--->'); Writeln (Inhalt : 3);
  22.      Druckebaum (Links, Stelle + 1)
  23.    END { with }
  24.   END; { Druckebaum }
  25.  
  26. PROCEDURE Einfuege (Zahl : Integer; VAR Lauf : Zeiger);
  27.   BEGIN
  28.    IF Lauf = Nil THEN BEGIN  { hier einfuegen }
  29.     New (Lauf);
  30.      WITH Lauf^ DO BEGIN
  31.       Inhalt := Zahl;
  32.       Links  := Nil;
  33.       Rechts := Nil
  34.      END { with }
  35.    END { if }
  36.    ELSE
  37.     IF Zahl < Lauf^.Inhalt THEN Einfuege (Zahl, Lauf^.Links)
  38.      ELSE
  39.       IF Zahl > Lauf^.Inhalt THEN Einfuege (Zahl, Lauf^.Rechts)
  40.   END; { Einfuege }
  41.  
  42. BEGIN { Hauptprogramm }
  43.     Wurzel := Nil;
  44.     Writeln ('Unausgewogener Sortierbaum:');
  45.     Writeln ('Geben Sie Zahlen ein, ');
  46.     Writeln ('Ende mit 0 !');
  47.     Write ('Zahl: ');
  48.     Readln (N);
  49.     WHILE N <> 0 DO BEGIN
  50.    Einfuege (N, Wurzel);
  51.    Write ('Zahl: ');
  52.    Readln (N)
  53.   END; { while }
  54.   Druckebaum (Wurzel, 0)
  55. END.
  56.  
  57.