Rekursive Datenstrukturen, Baum

ed110

Grünschnabel
Hi, Leute muss euch noch mal um eure Hilfe bitten,
hab die unten aufgeführte Aufgabenstellung bekommen und keine Ahnung wie ich das hinkriegen soll. Mein Ansatz (klappt natürlich nicht! :-( ) lautet:
Code:
public class BaumTest{
protected Knoten links, rechts;
protected Baum wurzel;
 
public BaumTest (Baum wurzel){
this.wurzel = wurzel; 
}
public static Baum testBaumErzeugen(){
if ( wert < this . wert )
if ( links != null ) links . sortiereEin( wert );
else links = new Knoten( wert );
else if ( wert > this . wert )
if ( rechts != null ) rechts . sortiereEin( wert );
else rechts = new Knoten( wert );
} 
}//class BaumTest

Falls jemand mir weiterhelfen könnte wäre ich sehr dankbar.
Im vorraus ein Dankeschön für jegliche Bemühungen!
Gruß ED

____________________________________________________________________________

Betrachten Sie die beiden folgenden Klassen Knoten und Baum.
Code:
public class Knoten {
	protected int wert;
	protected Knoten links, rechts;
 
	public Knoten(int wert) {
		this.wert = wert;
		this.links = null;		
		this.rechts = null;
	}
 
	public Knoten(int wert, Knoten links, Knoten rechts){
		this.wert = wert;
		this.links = links;
		this.rechts = rechts;
	}
 
	public int getWert() { return wert;	}
	public void setWert(int wert) { this.wert = wert; }
 
	public Knoten getLinks() { return links; }
	public void setLinks(Knoten k) { links = k; }
 
	public Knoten getRechts() { return rechts; }
	public void setRechts(Knoten k) { rechts = k; }
 
	public String toString() {
		return wert
			+ "("
			+ ( ( links != null ) ? links.toString() : "()" )
			+ "," 
			+ ( ( rechts != null ) ? rechts.toString() : "()" )
			+ ")";
	}
} // Knoten
 
 
public class Baum {
 
	protected Knoten wurzel;
 
	public Baum(Knoten wurzel){
		this.wurzel = wurzel;
	}
 
	public Baum() {} //leerer Baum
 
	public void setWurzel(Knoten k) { wurzel = k; }
	public Knoten getWurzel() { return wurzel; }
 
 
	// gibt kompletten Baum aus
	public String toString () {
		return (wurzel != null) ? wurzel.toString() : "";
	}
 
} // Baum


Schreiben Sie eine Klasse BaumTest mit einer Methode public static Baum testBaumErzeugen(), die genau den nachfolgend abgebildeten Baum erzeugt und zurückliefert.


baum1.gif
 
Zuletzt bearbeitet:

ed110

Grünschnabel
Sorry!

Betrachten Sie die beiden folgenden Klassen Knoten und Baum.
Schreiben Sie eine Klasse BaumTest mit einer Methode public static Baum testBaumErzeugen(), die genau den nachfolgend abgebildeten Baum erzeugt und zurückliefert.
Code:
public class Knoten {
	protected int wert;
	protected Knoten links, rechts;
 
	public Knoten(int wert) {
		this.wert = wert;
		this.links = null;		
		this.rechts = null;
	}	
	public Knoten(int wert, Knoten links, Knoten rechts){
		this.wert = wert;
		this.links = links;
		this.rechts = rechts;
	}	
	public int getWert() { return wert;	}
	public void setWert(int wert) { this.wert = wert; }
 
	public Knoten getLinks() { return links; }
	public void setLinks(Knoten k) { links = k; }
 
	public Knoten getRechts() { return rechts; }
	public void setRechts(Knoten k) { rechts = k; }
 
	public String toString() {
		return wert
			+ "("
			+ ( ( links != null ) ? links.toString() : "()" )
			+ "," 
			+ ( ( rechts != null ) ? rechts.toString() : "()" )
			+ ")";
	}
} // Knoten
 
public class Baum {
 
	protected Knoten wurzel;
 
	public Baum(Knoten wurzel){
		this.wurzel = wurzel;
	}
 
	public Baum() {} //leerer Baum
 
	public void setWurzel(Knoten k) { wurzel = k; }
	public Knoten getWurzel() { return wurzel; }
 
	// gibt kompletten Baum aus
	public String toString () {
	return (wurzel != null) ? wurzel.toString() : "";
	}	
} // Baum

baum1.gif
 
Zuletzt bearbeitet:

ed110

Grünschnabel
Hi, hab jetzt die Lösung herausgetüftelt! Gruß ED

Code:
public class BaumTest {
  
 public static Baum testBaumErzeugen() {
  Knoten k1 = new Knoten(3);
  Knoten k2 = new Knoten(7,k1,null);
  Knoten k3 = new Knoten(12);
  Knoten k4 = new Knoten(18);
  Knoten k5 = new Knoten(15,k3,k4);
  Knoten wurzel = new Knoten(10,k2,k5);
  return new Baum(wurzel);
 }