1

Balancierte Suchbäume

Frage von sharksen sharksen

Moin.. ich habe ein kombinatorisches Problem:

Die Zahlen 1 bis 15 sollen in einen Suchbaum einsortiert werden, sodass er perfekt balanciert ist. Am Ende wird dann das rauskommen, was ich hier grafisch angehängt habe. Das schwierige ist aber, dass ich bestimmen soll, wie viele Möglichkeiten es gibt, diesen Baum zu befüllen.

Mein erster Ansatz war, dass ich den Baum einfach mal befülle, und mir nach jedem Element notiere, wie viele Möglichkeiten ich genau jetzt hätte. Das Problem dabei ist, dass wenn ich dann den Baum anders befülle, auch andere Werte rauskommen.

Füllt man ihn streng von links nach rechts (also 8 - 4 - 2 - 1 - 3 - 6 - 5 - 7 - 12 - 10 - 9 - 11 - 14 - 13 - 15) kommt man so auf ca 20.000 Möglichkeiten, füllt man ihn von oben nach unten (also 8 - 4 - 12 - 2 - 6 - 10 - 14 - 1 - 3 - 5 - 9 - 11 - 13 - 15) sind es ca 600 Millionen.

Also habe ich einen anderen Ansatz verfolgt, und zwar für jeden Wert zu schauen, wie viele Möglichkeiten es insgesamt gibt, diesen Wert zu setzen.. die 8 muss z.B. am Anfang gesetzt werden, also dafür nur 1 möglichkeit. Die 4 muss nach der 8 und vor der (2,1,3,6,5,7) gesetzt werden, also 8 Möglichkeiten usw.. da kommt aber insgesamt ca 4 * 10^14 raus.. und ich glaube auch das scheint falsch, denn es müsste ja eigentlich von der Idee her Ziehen ohne zurücklegen mit Reihenfolge sein, also irgendwas mit Fakultät, aber ich sehe nicht, wie ich das hier einbauen könnte.. weiß jemand Rat?

Fragen zu gleichen Themen finden

Antworten (2)

  • 0
    Hilfreichste & RatgeberHelden Antwort
    Antwort von boriswulff boriswulff

    Das ist eine sehr komplexe Aufgabe. Ich würde das vielleicht mal mit einer Simulation machen.

    D.h. es werden alle theoretischen 15! = 1,31 * 10^12 Folgen ausprobiert und sobald dort ein Fehler auftaucht verworfen.

    Bei Bäumen mit 3 Einträgen sieht man ja das es 2 Möglichkeiten geben kann.

    Bei Bäumen mit 2 * 3 + 1 = 7 Einträgen ist das schon viel komplizierter. Damit würde ich dann also anfangen.

    Und zum Schluss nimmt man den Baum mit 2 * 7 + 1 = 15 Einträgen und spielt das damit durch. Sicher erkennt man dann eine Gesetzmäßigkeit.

    Kommentar von sharksen sharksensharksen

    Danke für den Tipp, ich hab mal alle Möglichkeiten für 7 Einträge ausprobiert (es sind 80), finde dafür aber keine direkte Formel.. jedenfalls noch nicht, ich werd weiter rumprobieren ;)

    Kommentar von sharksen sharksensharksen

    so, dank deinem tipp habe ich mal für alle 0 bis 10 elementigen bäume die werte durch ein skript berechnen lassen.. und die zahlenfolge die da rauskam hab ich dann gegooglet^^

    raus kam das hier: http://mathworld.wolfram.com/Heap.html

    jetzt muss ich nur noch schauen, wieso die formel auch bei meinem problem anwendbar ist, aber.. es macht zumindest sinn :)

  • 0
    Antwort von MrGlanz MrGlanz
    Kommentar von sharksen sharksensharksen

    Überhaupt nicht hilfreich, zudem sind B-Bäume fast nie binär..

Diese Frage

Verwandte Fragen

Noch nicht den richtigen Rat gefunden?

Einfach und schnell viele hilfreiche Ratschläge von Deutschlands aktivster Ratgeber-Community erhalten!

Einfach und schnell einen Tipp erstellen und Ihren guten Rat mit anderen teilen!

Einfach und schnell ein Video hochladen und anschaulichen Rat an alle geben!

Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Rechtliche Hinweise finden Sie hier.