79 lines
2.2 KiB
Java
79 lines
2.2 KiB
Java
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|