[Java]class BinaerBaum {
BinaerBaum links; //linker Teilbaum
BinaerBaum rechts; //rechter Teilbaum
int wert;
String result;
BinaerBaum (int wert){
this.wert=wert;
}
public void add(int zahl){
if(zahl<= wert){
if(links==null){
links= new BinaerBaum(zahl);
}
else links.add(zahl);
}
else {
if (rechts==null){
rechts= new BinaerBaum(zahl);
}
else rechts.add(zahl);
}
}
public String toString(){
if (links != null){
result+=links.toString();
}
result+=wert;
if (rechts !=null){
result+=rechts.toString();
}
return result;
}
}
public class TestBaum{
public static void main(String[] args) {
BinaerBaum eins=new BinaerBaum(10);
eins.add(3);
eins.add(2);
eins.add(1);
eins.add(11);
eins.add(12);
System.out.println("<" +eins.toString()+ ">");
}
}[/Java]
Das sind meine beiden Klassen. Wenn ich jetzt TestBaum ausführe, bekomme ich die Ausgabe "nullnullnullnull12310null11null12" obwohl ich doch ausdrücklich definiert habe, es soll die Werte von links und rechts nur in result speichern wenn sie ungleich null sind. Wo liegt da der Fehler?
BinaerBaum links; //linker Teilbaum
BinaerBaum rechts; //rechter Teilbaum
int wert;
String result;
BinaerBaum (int wert){
this.wert=wert;
}
public void add(int zahl){
if(zahl<= wert){
if(links==null){
links= new BinaerBaum(zahl);
}
else links.add(zahl);
}
else {
if (rechts==null){
rechts= new BinaerBaum(zahl);
}
else rechts.add(zahl);
}
}
public String toString(){
if (links != null){
result+=links.toString();
}
result+=wert;
if (rechts !=null){
result+=rechts.toString();
}
return result;
}
}
public class TestBaum{
public static void main(String[] args) {
BinaerBaum eins=new BinaerBaum(10);
eins.add(3);
eins.add(2);
eins.add(1);
eins.add(11);
eins.add(12);
System.out.println("<" +eins.toString()+ ">");
}
}[/Java]
Das sind meine beiden Klassen. Wenn ich jetzt TestBaum ausführe, bekomme ich die Ausgabe "nullnullnullnull12310null11null12" obwohl ich doch ausdrücklich definiert habe, es soll die Werte von links und rechts nur in result speichern wenn sie ungleich null sind. Wo liegt da der Fehler?