Hallo,

> Kann mir jemand vielleicht den Teil genauer beschreiben, in 
> dem es darum
> geht, die (child-)Beitr�ge zu finden, die eine bestimmte 
> Eintrags-ID als
> "parent" haben. Ich verstehe nicht, wie bei dieser Methode 
> garantiert werden
> kann, dass alle Eintr�ge, also alle m�glichen Tiefen und das 
> noch in der
> richtigen Reihenfolge, gefunden werden.
> 
> W�re toll, wenn jemand w��te, wie das funktioniert.

Das ist nicht besonders schwer...

�berleg Dir mal wie rekursion funktioniert.
Wenn eine funktion sich selbst (oder jede andere Funktion) aufruft, dann
bleiben die lokalen Variablen der Funktion auf dem Stack(ein
LIFO-Speicher, LIFO=LastInFirstOut) erhalten, so dass beim zur�ckkehren
die alten Werte wieder da sind....

Genau das macht er auch... Nur das er explizit den Stack simuliert und
seine lokalen Variablen(parentID, Tiefe) drauflegt...
Der String stellt den Stack dar.
Ich lass' jetzt mal vereinfachend die Tiefe weg und statt einer
einfachen ID schreibe ich IDs, dennen ma anerkennt welchen parent sie
haben...
Also... Zuerst werden die Knoten der ersten Ebene in den Stack/String
geschrieben:
  S = 1;2;3;4
Jetzt l�uft der Algo los:
1. hole Dir den aktuellen(ersten) Node aus dem Stack
  A = 1
2. Gebe den Node aus(mit entsprechender Tiefe)
3. F�ge alle Kinder des aktuellen Nodes auf den Stack ein:
  S = 1.1;1.2;1.3;2;3;4
4. Falls Stack nicht leer, gehe zu 1.

Wenn jetzt 1.1 und 1.2 keine eigenen Kinder haben, dann sieht die
ausgabe nach deren Verarbeitung so aus:
Node1
  Node1.1
  Node1.2
Und der Stack so: S = 1.3;2;3;4
Jetzt wird Node1.3 ausgegeben und falls er Kinder hat, k�nnte der Stack
danach so aussehen:
S = 1.3.1;1.3.2;2;3;4

usw....

Hoffe das ist Dir jetzt klar geworden... Noch Fragen?

Gruss,

Claudius




| [aspgerman] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspgerman/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspgerman.asp

Antwort per Email an