H
HansPeterLoft
Gast
Hallo, ich habe hier einen Binärbaum aus Objekten mit Namen.
Nun steige ich aber für den linken oder rechten Nachfolger in addElement(...){...}
immer rekursiv ab, wie kann ich aber iterativ absteigen z.B mit einer while-Schleife?
Wenn ich einfach:
versuche, dann zeigt ja das Objekt p auf seinen linken Nacholger, beim rekursiven Abstieg
hingegen bleibt p gleich, aber z.B p.left.left.left wird hinzugefügt usw...
Wie mache ich das Iterativ? Gruss
Nun steige ich aber für den linken oder rechten Nachfolger in addElement(...){...}
immer rekursiv ab, wie kann ich aber iterativ absteigen z.B mit einer while-Schleife?
Wenn ich einfach:
Java:
while(p.left != null) {
p = p.left;
}
versuche, dann zeigt ja das Objekt p auf seinen linken Nacholger, beim rekursiven Abstieg
hingegen bleibt p gleich, aber z.B p.left.left.left wird hinzugefügt usw...
Wie mache ich das Iterativ? Gruss
Java:
public class Main {
public static void main(String [] args) {
List list = new List("Hans");
list.addElement("Peter", list);
list.addElement("Kurt",list);
list.out(list);
}
}
class List {
String name;
List left,right;
List(String n) {
name = n;
left = null;
right = null;
}
void addElement(String n, List p) {
if(n.compareTo(p.name) < 0) {
if(p.left != null)
addElement(n,p.left);
else p.left = new List(n);
} else {
if(p.right != null)
addElement(n,p.right);
else p.right = new List(n);
}
}
void out(List p) {
if(p != null) {
out(p.left);
System.out.println(p.name);
out(p.right);
}
}
}