# Brauch Hilfe für eine "kleine" Übungsaufgabe.



## woody84 (27. Dez 2004)

Servus!

Hab mir mal dieses Forum durchgesehen und bemerkt, dass ich jetzt mit meinen Problem sicher auf ein paar taube Ohren stoßen werde, da ich nunmal wenig bis keine Ahnung von Java habe,....

Jedoch muss ich um das vorige Semester abzuschließen noch ein Übungsbeispiel abgeben und ich habe aber leider echt keine Ahnung wie ich es angehen soll,.... :bahnhof: 

Ich kann euch nur eines Versprechen, und zwar dass ich euch NIE wieder mit so etwas belästigen werde, da ich Java in meinen weiteren Leben (hoffentlich) nicht mehr brauche.

So, hoffentlich ist mir jetzt niemand böse und mir kann jemand helfen,... wär echt total dringend und eine einmalige Ausnahme,....  :wink: 


nun zum beispiel (sollte nicht allzu schwer sein angeblich):

Einfügen eines Knotens mit gegebenem Info-Teil in einen sortierten Binärbaum Bintree.
Die Elemente des Baums sollen jeden beliebigen strukturierten oder simplen Typ haben können; die Anzahl der Elemente soll beliebig sein. Die Methode search soll alle möglichen Fehlerfälle durch selbstdefinierte Ausnahmen abfangen.
Schreiben Sie dazu eine Klasse, in der ein von Ihnen gewälter strukturierter Datentyp für die Knoten des Baumes definiert wird.
Alle Klassen und Methoden sind mittels JAVADOC zu dokumentieren.

BITTE BITTE helft mir, wär auch bereit ein kleine entschädigung für die Mühen zu leisten.

Mit freundlichen Grüßen
woody


----------



## Beni (27. Dez 2004)

Ich hab die Aufgabenstellung nicht so genau gelesen (die sind sowieso meist unsinnig :wink: ), und Du wirst diesen BinaryTree sicherlich nicht 1:1 übernehmen können, aber es könnte Dir Ideen bieten, wie du das Ding aufbauen kannst.


```
/*
 * Created on 27.12.2004
 */
package forum;

/**
 * Ein binärer Baum der Objekte des Types {@link java.lang.Comparable Comparable}
 * sortiert speichert. Es ist dabei nicht möglich ein Objekt mehrmals einzufügen.
 */
public class BinaryTree{
	private Node root;
	
	public BinaryTree(){
	}
	
	/**
	 * Fügt ein neues Element in den Tree ein.
	 * @param c Das neue Element
	 */
	public void insert( Comparable c ){
		if( root == null ){
			root = new Node( c, null );
		}
		else{
			root.insert( c );
		}
	}
	
	/**
	 * Gibt an, ob ein Element im Tree gespeichert ist.
	 * @param c Das zu suchende Element 
	 * @return true, wenn das Element gefunden wurde, andernfalls false
	 */
	public boolean search( Comparable c ){
		if( root == null )
			return false;
		else
			return root.search( c );
	}
	
	/**
	 * Ein Node des Trees. Ein Node besteht immer aus einem Daten-Objekt, einem
	 * Verweiss zu dem Parent Node, und besitzt optional eines oder zwei 
	 * Kinder.
	 */
	private class Node{
		private Comparable data;
		private Node parent;
		private Node left, right;
		
		public Node( Comparable data, Node parent ){
			this.data = data;
			this.parent = parent;
		}
		
		public void insert( Comparable data ){
			int compare = this.data.compareTo( data );
			if( compare == 0 )
				this.data = data;
			else if( compare < 0 ){
				if( left == null )
					left = new Node( data, this );
				else
					left.insert( data );
			}
			else{
				if( right == null )
					right = new Node( data, this );
				else
					right.insert( data );
			}
		}
		
		public boolean search( Comparable data ){
			int compare = this.data.compareTo( data );
			if( compare == 0 )
				return true;
			else{
				if( compare < 0 )
					return left == null ? false : left.search( data );
				else
					return right == null ? false : right.search( data );
			}
		}
	}
}
```


----------



## woody84 (27. Dez 2004)

hmm, so sieht also ein binärbaum aus? ;-) is ja schonmal gut zu wissen.

bleibt nur noch die frage ob ich den wirklich so umbauen kann, wie ich ihne brauche,...

kann mir da niemand helfen??  :cry: 

@Beni
jednfalls herzlichen dank für die "Anregung" ;-)

thx
woody


----------



## woody84 (28. Dez 2004)

kann mir wirklich niemand weiter helfen?? 

mfg


----------

