Baum aus Liste (inorder) aufbauen |
14.01.2013, 17:35 | Auf diesen Beitrag antworten » | ||||||||||
xyz123 | Baum aus Liste (inorder) aufbauen Hallo, ich habe eine Datei, in der Elemente drinstehen, die der Größe nach geordnet sind. Nun möchte ich den Baum so aufbauen, dass er ausgeglichen ist. Meine Frage: Wenn ich rekursiv in der funktion ausgleichen die Parameter pBaum und n (die Anzahl der Elemente) übergebe, wie muss ich dann rekursiv beim linken und rechten Teilbaum das n übergeben? Also immer die Mitte ist schon klar, aber geht nur bei links... wie geht das bei rechts?? |
||||||||||
|
|||||||||||
14.01.2013, 19:45 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl | Ein Element fällt weg, da es im Baum eingefügt wird. Es bleiben also n-1 Elemente übrig. links=(n-1)/2 //abgerundet rechts=n-1 - links Dadurch sind rechts und links gleich groß (evtl. Abweichung von 1) und ergeben zusammen n-1 Elemente. Zahlenbeispiel: n=18 links=(18-1)/2=8 rechts=18-1 - 8=9 |
||||||||||
14.01.2013, 21:45 | Auf diesen Beitrag antworten » | ||||||||||
xyz123 | danke, aber so ganz funktioniert das nicht. wie würde denn dann folgender Baum aufgebaut werden? immer Wurzelobjekt einfügen; ausgleichen(linkerTeilbaum.create); ausgleichen(rechterTeilbaum.create); und noch ein bischen aus Datei auslesen und so mal weggelassen - rekursiv. Bsp: 6 7 8 9 12 18 22 33 40 41 45 |
||||||||||
15.01.2013, 09:00 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl |
Ausgabe:
|
||||||||||
Anzeige | |||||||||||
|
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |
|