Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Baumstruktur darstellen

  Alt 1. Okt 2014, 16:31
Also:
Delphi-Quellcode:
Foreach row in myTreeTable
  writeln(LevelIndent (row)+' '+intToStr(row.ID));
...

Function LevelIndent (row : TableRow) : String;
Begin
  if row.ParentID = 0 then
    result := ''
  else
    result := ' '+Level (row.Table.FindRow(row.ParentID))
End;
Das ist jetzt die einfachste und langsamste Variante. Aber sobald Du 'row.Table.FindRow(ID : Integer)' programmiert hast, läuft es.

Die Idee ist, das man die rekursive Definition des Baumes auch in den Implementierungen abbilden muss. Das man daraus (weil eine Tailrecursion) sofort eine Iteration machen kann, steh auf einem anderen Blatt...

"Die Einrücktiefe eines Knotens ist um eins höher als die des Elternknotens".

Man kann das auch optimieren, indem man sich bereits ermittelte 'LevelIndent' merkt.

@mkinzler: Wenn man so eine Tabelle in ein TreeView bekommt, schafft man auch einen Ausdruck, denn die Lösungen sind ja äquivalent.
  Mit Zitat antworten Zitat