klassenproblem



  • CStoll schrieb:

    Du meinst, daß jeder Knoten eine variable Anzahl an Nachfolgern haben soll?

    der user gibt an wieviele knoten ein baum haben soll und so wird der baum auch
    immer constant fortgesetzt.
    sohn1-vater1-sohn2-vater2-sohn3-vater3-sohn4
    (die söhne zeigen dann jeweils wieder auf einen baum mit 4 söhnen und 3 vätern.

    wie stelle ich dies in einer klasse dar?



  • Kannst du das mal bitte zweidimensional darstellen - bei deiner Liste der Väter und Söhne verliert man ja den Überblick.



  • user gibt knotenanzahl=2 ein, durch die formel 2*k ergibt dies 4:
    also sieht mein baum so aus mit folgenden eingaben: 1,2,3,4,5

    _________
             [u]|3      |      |       |       |[/u]
             |  |
             |  |
             v  v
      _________ _________
      [u]|1|2|    |    |[/u] [u]|4|5|    |    |[/u]
    

    weiter ausbaubar...
    ich hoffe mich jetzt verständlich ausgedrückt zu haben... 😞



  • und was ist daran jetzt so schwer? Du weißt doch was man mit einer liste oder einem vector machen kann, oder?



  • nein, leider komme ich einfach nicht drauf.
    ich versuche mich die ganze zeit mit doppelt verketteten listen, aber leider kann ich
    nicht einmal nur die wurzel bilden, weiß éinfach nicht wie das geht.
    definiere class baum mit :[cpp]int wert;
    Baum *links;
    Baum *rechts;
    };
    das klappt ganz gut mit einem binärbaum
    aber was ist mit meinem baum, wenn sich die zeiger doch ???vereinen???

    habe einen knoten definiert, und da der user beliebige anzahl von knoten
    verlangen kann, weiß ich nicht wie ich dies erweitern kann...



  • Na, so wie es Th beschrieben hat.
    Weißt du denn was ein vector bzw. Array ist?



  • löcheringlücklichkeit schrieb:

    Na, so wie es Th beschrieben hat.
    Weißt du denn was ein vector bzw. Array ist?

    ja das weiß ich, aber leider weiß ich mir nicht zu helfen.
    genauer gesagt, finde ich einfach den anfangsfaden nicht....



  • Na gut, versuch mal das als Ansatz:

    class baum_el
    {
      int wert;
      std::vector<baum_el*> kinder;
    };
    


  • entschuldigt, dass ich mich wieder melde und stören muss....
    mir ist "bildlich" nicht klar, wie durch diesen code

    class baum_el
    {
      int wert;
      std::vector<baum_el*> kinder;
    };
    

    mein baum aussehen soll....
    ich meine wohin zeigt mein pointer genau hin? ich hab das nicht verstanden.

    ps: dies ist keine hausaufgabe für die schule oder das studium.
    ich mach zu hause einfach ma so ein selbststudium, daher meine unwissenheit.

    gruß



  • Das ist nicht nur ein pointer, sondern ein vector in dem du alle pointer, die auf Kinderknoten dises Knotes zeigen, speichern kannst.


Anmelden zum Antworten