Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Baum travesieren



killa12
06-08-2008, 08:56
Hi,

hab folgendes Problem ich habe eine Baum, wo ich nur die Funktionen getRootNode und getChildNodes habe, jetze brauche ich eine Idee wie ich am effizientesten den Baum durchsuchen kann und mir eine Liste mit allen Knoten zurück geben kann. Meine Idee wäre mit rekursion allerdings weiss ich nicht wie ich das umsetzen soll. Wäre echt super wenn jemand ein kleines Code Beispiel für mich hat

danke im voraus!!

jeebee
06-08-2008, 09:38
void printTree(Node n) {
System.out.println(n);
List<Node> children = getChildNodes(n);
if(children.empty) return;
foreach(Node c in children) {
printTree(c);
}
}
Dies ist die rekursive Lösung, aufrufen kannst du die z.B. mit printTree(getRootNode());

Das Beispiel funktioniert wahrscheinlich nicht direkt, da du ja die Funktionssignaturen der vorhandenen Funktionen nicht angegeben hast.

Ach ja, die Ausgabereihenfolge der Knoten ist in diesem Fall pre-order, also für den Baum:
R
/ \
a b
/ \ / \
c d e f
erhälst du folgende Ausgabe: R a c d b e f