Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Schnellste und einfachste Methode für verkettete Liste

  Alt 13. Mär 2008, 18:50
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat