Implementierung des Binärbaums - Teil 2: Einfügen

This commit is contained in:
2025-02-18 09:44:58 +01:00
parent 5b644264af
commit fe7f85dfb1
6 changed files with 63 additions and 34 deletions

View File

@@ -16,8 +16,9 @@ public class Abschluss extends Baumelement
{ {
} }
// weitere Methoden public Baumelement einfügen(Datenelement datenNeu) {
return new Knoten(datenNeu);
}

View File

@@ -1,14 +1,14 @@
/** /**
* Abstrakte Klasse Baumelement - beschreiben Sie hier die Klasse * Abstrakte Klasse Baumelement - beschreiben Sie hier die Klasse
* *
* @author (Ihr Name) * @author (Ihr Name)
* @version (eine Version-Nummer oder ein Datum) * @version (eine Version-Nummer oder ein Datum)
*/ */
public abstract class Baumelement public abstract class Baumelement
{ {
// Attribute // Attribute
// Methoden // Methoden
public abstract Baumelement einfügen(Datenelement datenNeu);
} }

View File

@@ -18,7 +18,9 @@ public class BinBaum
this.wurzel = new Abschluss(); this.wurzel = new Abschluss();
} }
// weitere Methoden public void einfügen(Datenelement datenNeu) {
this.wurzel = this.wurzel.einfügen(datenNeu);
}

View File

@@ -1,12 +1,15 @@
/** /**
* Tragen Sie hier eine Beschreibung des Interface Datenelement ein. * Tragen Sie hier eine Beschreibung des Interface Datenelement ein.
* *
* @author (Ihr Name) * @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum) * @version (eine Versionsnummer oder ein Datum)
*/ */
public interface Datenelement public interface Datenelement
{ {
//hier Methodenköpfe eintragen in der Form "int beispielMethode(int y);" //hier Methodenköpfe eintragen in der Form "int beispielMethode(int y);"
} public boolean istGleich(Datenelement d);
public boolean istGrößerAls(Datenelement d);
public String gibSchlüssel();
}

View File

@@ -23,7 +23,18 @@ public class Knoten extends Baumelement
this.rechterNachfolger = new Abschluss(); this.rechterNachfolger = new Abschluss();
} }
// weitere Methoden 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;
}

View File

@@ -7,16 +7,28 @@
*/ */
public class Wortpaar implements Datenelement public class Wortpaar implements Datenelement
{ {
// Attribute String wortDeutsch;
String wortEnglisch;
/** /**
* Konstruktor für Objekte der Klasse Wortpaar * Konstruktor für Objekte der Klasse Wortpaar
*/ */
public Wortpaar() public Wortpaar(String wortDeutsch, String wortEnglisch) {
{ this.wortDeutsch = wortDeutsch;
this.wortEnglisch = wortEnglisch;
}
public String gibSchlüssel() {
return this.wortDeutsch;
} }
// weitere Methoden public boolean istGleich(Datenelement anderesWortpaar) {
return this.gibSchlüssel().equals(anderesWortpaar.gibSchlüssel());
}
public boolean istGrößerAls(Datenelement anderesWortpaar) {
return this.gibSchlüssel().compareTo(anderesWortpaar.gibSchlüssel()) > 0;
}