hey Leute könnt ihr mir bitte behilflich sein,
ich habe folgendes Problem.
ich soll eine Methode "gibAnzahl()" schreiben, um die anzahl der knoten im binärbaum zu zählen.
leider weiß ich nicht wie ich vorgehen soll.
danke im voraus!
ich habe folgendes Problem.
ich soll eine Methode "gibAnzahl()" schreiben, um die anzahl der knoten im binärbaum zu zählen.
leider weiß ich nicht wie ich vorgehen soll.
Code:
public class BinaererSuchbaum {
private Baumknoten wurzel;
public BinaererSuchbaum() {
this.wurzel = null;
}
public String gibInorderfolge() {
return (this.wurzel == null)
? ""
: this.wurzel.gibInorderfolge();
}
public String gibPreorderfolge() {
return (this.wurzel == null)
? "(leer)"
: this.wurzel.gibPreorderfolge();
}
public boolean istEnthalten(String wert) {
return (this.wurzel != null) && this.wurzel.istEnthalten(wert);
}
public void fuegeHinzuRekursiv(String wert) {
if (this.wurzel == null) {
this.wurzel = new Baumknoten(wert);
} else {
this.wurzel.fuegeHinzu(wert);
}
}
public void fuegeHinzuIterativ(String wert) {
Baumknoten knoten = new Baumknoten(wert);
Baumknoten aktuellerKnoten = this.wurzel;
Baumknoten vater = null;
boolean nachRechtsVerzweigt = false;
while (aktuellerKnoten != null) {
vater = aktuellerKnoten;
if (wert.compareTo(aktuellerKnoten.gibInhalt()) <= 0) {
nachRechtsVerzweigt = false;
aktuellerKnoten = aktuellerKnoten.gibLinkenTeilbaum();
} else {
nachRechtsVerzweigt = true;
aktuellerKnoten = aktuellerKnoten.gibRechtenTeilbaum();
}
}
if (vater == null) {
this.wurzel = knoten;
} else if (nachRechtsVerzweigt) {
vater.setzeRechtenTeilbaum(knoten);
} else {
vater.setzeLinkenTeilbaum(knoten);
}
}
public void entferne(String wert) {
if (this.wurzel != null) {
this.wurzel = this.wurzel.entferne(wert);
}
}
public int gibAnzahl(){
}
}
danke im voraus!