Zum Speichern eignet sich z.B,
XML oder JSON, das sind standardisierte Formate und Klassen gibts schon dafür.
Als Datenstruktur eignet sich z.B. soetwas:
Delphi-Quellcode:
Type
TMyTreeNode = Class
Public
Property Father : TMyTreeNode; // Zeiger auf den übergeordneten Knoten oder NIL, wenn der Knoten schon der oberste ist.
Property FirstChild : TMyTreeNode; // Zeiger auf den ersten untergeordneten Knoten oder NIL, wenn es Keine gibt.
Property Next : TMyTreeNode; // Zeiger auf den nächsten Knoten mit gleichem Father, oder NIL, wenn der Knoten der letzte in der Liste ist.
Property Data : TObject; // Daten des Knotens
End;
In Datenbanken werden die Knoten durchnumeriert und zum Speichern speichert man eben nur die ID's der Väter, Kinder und Geschwister. Beim Einlesen muss man dann die Verweise wieder zusammensuchen, das geht aber mit einer Lookupliste sehr schnell. Eine weitere Möglichkeit, die Daten schnell einzulesen ist, sie geeignet zu sortieren.
Eine Hierarchie kann man auch so abspeichern, indem man die Knoten mit 'Namen' versieht. Dabei gilt folgende Regel:
Name (Knoten) = Name (Knoten.Father)+'/'+Knoten.ID
Dann schmeisst man diese Namen in eine Liste und sortiert sie alphabetisch und speichert sie ab.
Beim Einlesen kann man dann ohne Suchen die Knoten direkt verlinken.
Hoffe, das hilft.