Binaerersuchbam als Array

gogocho

Mitglied
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:

Java:
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?
 
F

Firephoenix

Gast
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ß
 

mjdv

Bekanntes Mitglied
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 ;)
 
T

TUM

Gast
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.
 
F

Firephoenix

Gast
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ß
 

Neue Themen


Oben