hi,
ich sitz grad an der umsetzung eines binärbaumes..
if (e1.rechts == null && e1.rechts.name == null) {
und sein linker pendant lösen exceptions aus, aber ohne den zweiten ausdruck geht das ding nur bis zur zweiten ebene....
die ausgabe auf der konsole (mit einfuegen("...") gefüttert):
kann mir jemand helfen?
ich sitz grad an der umsetzung eines binärbaumes..
Code:
public class baum {
public baumelement root, e1, e2, e3;
baum() {
root = new baumelement();
e1 = new baumelement();
e1.höhe = 0;
} //Konstruktor
public void einfuegen(String name) {
System.out.println("\nNächstes Element: " + name);
e2 = new baumelement();
if (e1.höhe == 0)
e1 = root;
e2.name = name;
e1.name = "Hallo";
// vergleichen mit node
if (e1.name.compareTo(e2.name) > 0 ) { // kleiner
System.out.println("LINKS von " + e1.name + ": " + e2.name);
// wenn nächste node links nicht vorhanden => nächste node = dieses ding
if (e1.links == null && e1.links.name == null) {
e3 = new baumelement();
e1.links = e3;
e3.name = name;
System.out.println("Element wurde links eingefügt: " + e3.name + " in Höhe " + e1.höhe);
} else {
// ansonsten node = nächste node links
e2 = e1.links;
e1 = e2;
System.out.println("eins nach links unten");
e1.höhe++;
einfuegen(name);
}
} else if (e1.name.compareTo(e2.name) < 0) { // größer
System.out.println("RECHTS von " + e1.name + ": " + e2.name);
// wenn nächste node rechts nicht vorhanden => nächste node = dieses ding
if (e1.rechts == null && e1.rechts.name == null) {
e3 = new baumelement();
e1.rechts = e3;
e3.name = name;
System.out.println("Element wurde rechts eingefügt: " + e3.name + " in Höhe " + e1.höhe);
} else {
// ansonsten node = nächste node rechts
e2 = e1.rechts;
e1 = e2;
System.out.println("eins nach rechts unten");
e1.höhe++;
einfuegen(name);
}
} else { // gleich
// namen gleich..
}
} //einfügen
}
if (e1.rechts == null && e1.rechts.name == null) {
und sein linker pendant lösen exceptions aus, aber ohne den zweiten ausdruck geht das ding nur bis zur zweiten ebene....
die ausgabe auf der konsole (mit einfuegen("...") gefüttert):
Code:
Nächstes Element: Ameise
LINKS von Hallo: Ameise
Element wurde links eingefügt: Ameise in Höhe 0
Nächstes Element: Xaver
RECHTS von Hallo: Xaver
Element wurde rechts eingefügt: Xaver in Höhe 0
Nächstes Element: Uzumaki
RECHTS von Hallo: Uzumaki
eins nach rechts unten
Nächstes Element: Uzumaki
RECHTS von Hallo: Uzumaki
Element wurde rechts eingefügt: Uzumaki in Höhe 1
Nächstes Element: Braunschweig
LINKS von Hallo: Braunschweig
Element wurde links eingefügt: Braunschweig in Höhe 1
Nächstes Element: Lumpi
RECHTS von Hallo: Lumpi
eins nach rechts unten
Nächstes Element: Lumpi
RECHTS von Hallo: Lumpi
Element wurde rechts eingefügt: Lumpi in Höhe 1
Nächstes Element: Alpha
LINKS von Hallo: Alpha
Element wurde links eingefügt: Alpha in Höhe 1
Nächstes Element: Beta
LINKS von Hallo: Beta
eins nach links unten
Nächstes Element: Beta
LINKS von Hallo: Beta
Element wurde links eingefügt: Beta in Höhe 1
Nächstes Element: Pfirsich
RECHTS von Hallo: Pfirsich
Element wurde rechts eingefügt: Pfirsich in Höhe 1
kann mir jemand helfen?