home *** CD-ROM | disk | FTP | other *** search
-
- PROGRAM Sorttree;
-
- TYPE Zeiger = ^Knoten;
-
- Knoten = RECORD
- Links, Rechts : Zeiger;
- Inhalt : Integer
- END;
-
- VAR N : Integer;
- Wurzel : Zeiger;
-
- PROCEDURE Druckebaum (Lauf : Zeiger; Stelle : Integer);
- VAR i : Integer;
- BEGIN
- IF Lauf <> Nil THEN { noch weitere Knoten vorhanden }
- WITH Lauf^ DO BEGIN
- Druckebaum (Rechts, Stelle + 1);
- FOR i := 1 TO Stelle DO Write (' ':7);
- Write (' I--->'); Writeln (Inhalt : 3);
- Druckebaum (Links, Stelle + 1)
- END { with }
- END; { Druckebaum }
-
- PROCEDURE Einfuege (Zahl : Integer; VAR Lauf : Zeiger);
- BEGIN
- IF Lauf = Nil THEN BEGIN { hier einfuegen }
- New (Lauf);
- WITH Lauf^ DO BEGIN
- Inhalt := Zahl;
- Links := Nil;
- Rechts := Nil
- END { with }
- END { if }
- ELSE
- IF Zahl < Lauf^.Inhalt THEN Einfuege (Zahl, Lauf^.Links)
- ELSE
- IF Zahl > Lauf^.Inhalt THEN Einfuege (Zahl, Lauf^.Rechts)
- END; { Einfuege }
-
- BEGIN { Hauptprogramm }
- Wurzel := Nil;
- Writeln ('Unausgewogener Sortierbaum:');
- Writeln ('Geben Sie Zahlen ein, ');
- Writeln ('Ende mit 0 !');
- Write ('Zahl: ');
- Readln (N);
- WHILE N <> 0 DO BEGIN
- Einfuege (N, Wurzel);
- Write ('Zahl: ');
- Readln (N)
- END; { while }
- Druckebaum (Wurzel, 0)
- END.
-
-