Java:
public class Baum {
private Knoten start;
//Baum erstellen
public void einfuegen(Knoten neu) {
if(start == null) {
start = neu;
}
else {
einfuegen(start,neu);
}
}
public void einfuegen(Knoten temp, Knoten neu) {
if(neu.getAlter()<temp.getAlter()) {
if(temp.left==null) temp.left = neu;
else einfuegen(temp.left,neu);
}
if(neu.getAlter()>temp.getAlter()) {
if(temp.right==null) temp.right = neu;
else einfuegen(temp.right,neu);
}
}
//Baum ausgeben
public void ausgeben() {
ausgeben(start);
}
public void ausgeben(Knoten temp) {
if(temp == null) return;
if(temp.left!=null) ausgeben(temp.left);
System.out.println(temp.getAlter());
if(temp.right!=null) ausgeben(temp.right);
}
public static void main(String[]args) {
Baum xxx = new Baum();
Knoten eins = new Knoten("Jakob",23);
Knoten zwei = new Knoten("Jonas",24);
Knoten drei = new Knoten("Eva",26);
Knoten vier = new Knoten("Peter",28);
xxx.einfuegen(eins);
xxx.einfuegen(zwei);
xxx.einfuegen(drei);
xxx.einfuegen(vier);
System.out.println();
}
}
Java:
public class Knoten {
private String name;
private int alter;
Knoten left;
Knoten right;
public Knoten(String name, int alter) {
this.name=name;
this.alter=alter;
}
public String getName() {
return name;
}
public int getAlter() {
return alter;
}
}
Ich bräuchte mal eure Hilfe, irgendwie hab ich Rekursion nich so wirklich verstanden. Die Frage bezieht sich auf die ausgeben() Methode. Ich versteh einfach nicht, was da genau passiert. Für mich ist es so weit verständlich, dass wir im Baum immer weiter runter gehen bis eben System.out.println(temp.getAlter()); ausgeführt wird. Aber wie kommt es zustande, dass die anderen werte auch ausgegeben werden ?