Hallo,
gegenfrage, wie hast du die Daten denn vorliegen?
Bei der Sanche mit den Zeigern hast du mich schon richtig verstanden. WEnn du einen Binären Baum hast kannst du dir das Einfach machen, indem du einen ensprechend eindeutigen Datentyp Sachaffst:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| TYPE pData = ^tData; tData = packed record Cation : String[40]; Child1, Child2 : pData; parent : pData; // Den nur wenn du auch rückwerst durch den Baum laufen willst. end; // tData |
Die einzelnen Elemente musst du dann zur Laufzeit mit
NEW erzeugen und mit
DISPOSE wieder Freigeben.
Du solltest also erfahrungen mit
Zeigern und natürlich auch mit
Rekursionen haben. Notfalls sammele sie

.
Bäume sind immer Recht datenaufwändig. Mit jeder
vollständigen Ebene wird der Speicherverbrauch ben binären Bäumen mehr als verdoppelt. Mit einem Zeiger konstrukt stellst du aber sicher, das nur für Tatsächlich vorhandene Knoten speicher belegt wird bei einer Abbildung z.B. auf ein Array musstest du auch für nichtvorhandene Knoten Felder vorsehen.
Noch ein Tipp: Wenn du mit binären Bäumen arbeitest, kannst du dir die Breitenbestimmung vereinfachen, indem du einfach von der Maximal möglichen Breite ausgehst. Dann wird deine Grafik aber in ungünstigen Fällen recht viel Weißfläche aufweisen (Weil z.B. der Rechte Knoten der Ebene 1 ein Blatt ist, also keine nachfahren mehr hat.
Gruß
Klabautermann