Bäume erstellen



  • Hallo Leute,

    ich versuche zurzeit, ein wenig mit Bäumen herumzuexperimentieren, bzw. überhaupt erstmal welche zu erstellen.

    Ich habe einen Baum mit Elemet:

    struct element
    {
      int zahl;
      element *nachfolger[2];
    };
    

    So weit bin ich gekommen: http://nopaste.ch/3523200a1358a5e.html

    Jetzt möchte ich die Eingabeprozedur programmieren. Rein theoretisch sollte man da ja die einzelnen Baumteile von Rechts nach Links durchgehen, und neue Elemente einfügen. Kann mir jemand sagen, wie ich das mache? Rein theoretisch müsste ich ja erst zum letzten Element ganz rechts, dann schauen, wie viele Schritte es zu dem sind, und dann das für alle Baumteile schauen, oder? Weiß jemand da eine Lösung?



  • Du mußt bei Bäumen erstmal für dich selbst definieren, wie die untergeordneten Elemente geordnet werden sollen?
    Wenn du einen einfachen unbalancierten, aber geordneten Baum haben willst, dann mußt du zuerst das Element finden, das der nächste Vorgänger (bzw. alternativ Nachfolger) deines neuen Elementes ist und diesen dann in den Baum eintragen (bzgl. alten Vorgänger und untergeordnete Elemente).

    Wenn du einen ausbalancierten Baum haben willst, dann such mal nach den begriffen "Rot-Schwarz-Baum" (Red-Black-Tree) bzw. AVL-Baum.



  • Danke für deine Antwort.

    Ausbalanciert wär schön, also, dass zuerst ganz links unten sozusagen eins rankommt, und dann erste Verzeigung nach Rechts und dann ganz links unten usw.


Anmelden zum Antworten