Hallo ich bräuchte Hilfe beim schreiben einer objektmethode, die überprüft ob eine Zahl im Binären Suchbaum vorhanden ist.
Das ist soweit mal das was ich habe und mein Problem ist die Methode "suchen", da sie immer False zurückgibt. Mir ist auch klar warum, nur ist mir nicht klar wie ich das Problem beheben kann. Ich hoffe hier kann mir jemand helfen.
[CODE lang="java" title="TesterKlasse:"]public class KnotenTester {
public static void main(String[] args) {
int neu = 1;
Knoten wurzel = new Knoten(9);
wurzel.einfuegen(8);
wurzel.einfuegen(7);
wurzel.einfuegen(6);
wurzel.einfuegen(5);
wurzel.einfuegen(4);
wurzel.einfuegen(3);
wurzel.einfuegen(2);
wurzel.einfuegen(1);
System.out.println(wurzel.toString());
if (wurzel.suchen(neu) == true) {
System.out.println("Das Element ist enthalten.");
} else {
System.out.println("Das Element ist nicht enthalten.");
}
}
}[/CODE]
Java:
package verkettete_objekte;
public class Knoten {
public int x;
public Knoten links;
public Knoten rechts;
public Knoten(int wert) {
x = wert;
links = null;
rechts = null;
System.out.println("Ein neuer Knoten mit dem Wert " + x + " wurde erschaffen");
}
public void einfuegen (int wert) {
if (wert != x) {
if (wert < x && links == null) {
links = new Knoten(wert);
} else if(wert < x) {
links.einfuegen(wert);
}
if (wert > x && rechts == null) {
rechts = new Knoten(wert);
} else if(wert > x){
rechts.einfuegen(wert);
}
} else {
System.out.println("Der Teilbaum kann nicht erschaffen werden.");
}
}
public String toString() {
String s_links = "";
String s_rechts = "";
if (links != null) {
s_links = links.toString();
}
if (rechts != null) {
s_rechts = rechts.toString();
}
String baum = "(" + s_links + x + s_rechts + ")";
return baum;
}
public boolean suchen(int suche) {
boolean enthält = false;
System.out.println(x);
if (x == suche) {
enthält = true;
}
if (x < suche) {
rechts.suchen(suche);
}
if (x > suche) {
links.suchen(suche);
}
return enthält;
}
}
Das ist soweit mal das was ich habe und mein Problem ist die Methode "suchen", da sie immer False zurückgibt. Mir ist auch klar warum, nur ist mir nicht klar wie ich das Problem beheben kann. Ich hoffe hier kann mir jemand helfen.
[CODE lang="java" title="TesterKlasse:"]public class KnotenTester {
public static void main(String[] args) {
int neu = 1;
Knoten wurzel = new Knoten(9);
wurzel.einfuegen(8);
wurzel.einfuegen(7);
wurzel.einfuegen(6);
wurzel.einfuegen(5);
wurzel.einfuegen(4);
wurzel.einfuegen(3);
wurzel.einfuegen(2);
wurzel.einfuegen(1);
System.out.println(wurzel.toString());
if (wurzel.suchen(neu) == true) {
System.out.println("Das Element ist enthalten.");
} else {
System.out.println("Das Element ist nicht enthalten.");
}
}
}[/CODE]
Zuletzt bearbeitet: