public class Knoten extends Baumelement { // Attribute Datenelement daten; Baumelement linkerNachfolger; Baumelement rechterNachfolger; /** * Konstruktor für Objekte der Klasse Knoten */ public Knoten(Datenelement daten) { this.daten = daten; this.linkerNachfolger = new Abschluss(); this.rechterNachfolger = new Abschluss(); } public Baumelement einfügen(Datenelement datenNeu) { if (this.daten.istGleich(datenNeu)) { System.out.println("Daten schon enthalten!"); } else { if (this.daten.istGrößerAls(datenNeu)) { this.linkerNachfolger = this.linkerNachfolger.einfügen(datenNeu); } else { this.rechterNachfolger = this.rechterNachfolger.einfügen(datenNeu); } } return this; } public Datenelement Suche(String suche){ if (this.daten.gibSchlüssel() == suche) { return daten; } else { if (this.daten.gibSchlüssel().compareTo(suche)>0) { return this.linkerNachfolger.Suche(suche); } else { return this.rechterNachfolger.Suche(suche); } } } public int HöheGeben(){ if (linkerNachfolger.HöheGeben() > rechterNachfolger.HöheGeben()){ return linkerNachfolger.HöheGeben()+1; } return rechterNachfolger.HöheGeben()+1; } public boolean IstVorhanden(String Testwort){ if(daten.gibSchlüssel().equals(Testwort)){ return true; } if (this.daten.gibSchlüssel().compareTo(Testwort)>0) { return this.linkerNachfolger.IstVorhanden(Testwort); } else { return this.rechterNachfolger.IstVorhanden(Testwort); } } public int TiefeGeben(String suche){ if(daten.gibSchlüssel().equals(suche)){ return 0; } if (this.daten.gibSchlüssel().compareTo(suche)>0) { return this.linkerNachfolger.TiefeGeben(suche)+1; } else { return this.rechterNachfolger.TiefeGeben(suche); } } }