# Binaerersuchbam als Array



## gogocho (23. Jun 2011)

Hallo 
Ich muss eine Objektmethode (in dem Fal getSortedArray()) schreiben, die ein Array zurueckgibt, das die Zahlen aus den Knoten dieses Baumes in aufsteigender Reihenfolge enthaelt.
Soweit hab ich das:


```
public class BSB {

    private BSB left;
    private BSB right;
    private int value;

    public BSB(int v) {
        value = v;
    }
    public int size(){
        int sizeKant=1;
        //faengt bei 1 ein, weil den Startknoten eigentlich verpasst wird
        if (right!=null){
           sizeKant+=right.size();
            
        }
        
         if(left!=null){
            sizeKant+=left.size();
            
        }   
    return sizeKant;
}
            public int[] getSortedArray(){
                int[] BSB = new int[size()];
                toOrganize(BSB, 0);
                return BSB;
            }
            public int[] toOrganize(int[] org, int i){
               org = new int[this.size()];
        
        if (left!=null){
                org[i]=this.value;
                  left.toOrganize(org,i+1);     
                }
                
        if (right!=null){
            org[i]=this.value;
              right.toOrganize(org,i+1);      
                }
                
                return org;
            }
```

Ich bin aber nicht sicher wie ich es korrigieren soll. Soll ich eigentlich zuerst den Baum durchsuchen um das kleinste element zu finden, dann einfuegen und weiter mit den naechsten?


----------



## Firephoenix (25. Jun 2011)

Hi, ist der Baum ein Binärer Suchbaum der Art "kleinere Elemente werden Links, größere Rechts eingefügt"?
Falls ja kann man die ausgabe des Baumes als sortiertes Array leicht rekursiv formulieren (ArrayList würde sich aufgrund der dynamischen größe allerdings eher anbieten).

Denn:

baumAlsArray(Baum b)
-wenn b null
--Leeres Array zurückgeben
-wenn b Blatt
--Array mit value des blattes zurückgeben
-ansonsten (b ist knoten)
--array zurückgeben, das den linken Teilbaum als Array kombiniert mit dem value von b kombiniert mit dem rechten Teilbaum von b enthält (Rekursion)
Gruß


----------



## gogocho (25. Jun 2011)

ich versuch mal  danke


----------



## mjdv (25. Jun 2011)

Uni München?XD


----------



## gogocho (25. Jun 2011)

mm nein  warum?


----------



## mjdv (25. Jun 2011)

Dachte nur, weil da genau die selbe Aufgabe Hausaufgabe ist, genau mit den selben Variablen und Klassennamen. Aber ist natürlich ne Standardaufgabe, und kann auch nur Zufall sein


----------



## TUM (26. Jun 2011)

Komm schon gogocho, sei mal erlich. Klar bist du an der TUM. Jede Woche stellst du hier sie selben Aufgaben rein, haargenau die selben, die an der TUM als Hausaufgabe gedacht sind.


----------



## Firephoenix (26. Jun 2011)

TUM hat gesagt.:


> Komm schon gogocho, sei mal erlich. Klar bist du an der TUM. Jede Woche stellst du hier sie selben Aufgaben rein, haargenau die selben, die an der TUM als Hausaufgabe gedacht sind.



Hi,
kleine Frage am Rande, macht das einen Unterschied?
Hier ist offiziell der Hausaufgabenbereich und er will nur hilfe zu einem Ansatz.
Und java-Hausübungen sind meistens Uni/Schule (wo auch sonst).
Und ob man bei einer Hausübung in einem Forum oder einem Tutor nachfragt macht für mich keinen großen Unterschied.
Gruß


----------

