Vorgehensweise bei besch.. Verzweigung



  • Hi,
    ich habe ein Prob, aber überhaupt keine Idee, wie ich vorgehen soll um es zu lösen und so mehr ich darüber nachdenke desto weniger versteh ich 😞
    Also,
    ich habe ein Prog, welches verschiedene Bauteile und Baugruppen verwalten soll. Diese lese ich dynamisch aus ner Textdatei aus.
    Ein Beispiel:
    Bauelemente A, B, C, D gehören zu Gruppe 1
    Bauelemente E, F, G gehören zu Gruppe 2
    Gruppe 1 und Gruppe 2 gehören zur Obergruppe Gruppe 0.
    Später kommen dann noch Abhängigkeiten hinzu wie Gruppe 1 darf gesamt max 10 Stück beinhalten, Gruppe 2 max 6Stück, jedoch Gruppe 0 max 12 Stück.

    Ich habe keinen Plan wie ich das in meinem Prog aufbauen soll, also es scheitert schon bei der Struktur.
    Habt ihr erstmal ein paar Ideen des Aufbaus? Das würde schon mal gut weiterhelfen.
    Ich dachte an eine Struktur ala:

    |- Name (Gruppe 1)
    |
    |---Elementname (Element A, als verkettete Liste für alle Elemente) 
      |- Eigenschaften des Elements ...
    

    Aber ich muss da dann ja noch die Untergruppen (0->1) oder Nebengruppen (1,2) mit einbringen. Und wenn ich später die ganzen Abhängigkeiten reinbringen will, muss ich die Elemente auch wieder finden können, ich weiss ja nicht, wieviel Untergruppen oder Nebengruppen es gibt und wie die Verzweigung aussieht. Deshalb habt ihr vielleicht einfachere Ideen für den Aufbau.
    Oder gibt es für solch eine Problematik schon fertige Klassen?

    mfg
    Tie



  • Klingt eigentlich nach Vererbung.

    class Gruppe0
    {
    Bauelement X; // in liste verwalten und größe überprüfen
    };
    
    class Gruppe1 : public Gruppe0
    {
    Bauelement A, B, C, D; // in liste verwalten und größe überprüfen
    };
    
    class Gruppe2 : public Gruppe0
    {
    Bauelement E,F,G; // in liste verwalten und größe überprüfen
    };
    

    Ich hab ja keine Ahnung was es für Attribute gibt, vielleicht machts so ja keinen Sinn. Oder man könnte noch eine Oberklasse Bauelement machen von der die anderen Bauelemente erben.

    Später kommen dann noch Abhängigkeiten hinzu wie Gruppe 1 darf gesamt max 10 Stück beinhalten, Gruppe 2 max 6Stück, jedoch Gruppe 0 max 12 Stück.



  • Könnte man das Problem nicht in einer Baumstruktur lösen???
    Also mit den Gruppen als Knoten und den einzelnen Bauelementen
    als Blättern.
    Ein Gruppe 1 - Knoten dürfte dann 10 Blätter haben, ein Knoten der
    Gruppe 2 nur 6.
    Als Zusatzbedingung dürfteen in einer Ebene des Baums insg. 12 Blätter sein.
    Diese Bedingungen müssten immer beim Einfügen eines Blattes und Neuorganisation
    des Baumes verifiziert werden.

    Ebene 0 Gruppe 0
    Ebene 1 Grupper 1 Gruppe 2
    Eben 2 A B A C B D E F G F E

    Zusätzlich könnten noch Beziehungen über Klassenstrukturen (Vererbung)
    modelliert werden.

    Gruß,
    Markus



  • Mist, das was unten steht soll ein Baum sein,
    hat leider die Formatierung verloren! 😃

    Gruß,
    Markus



  • Danke, das mit der Baumstruktur klingt sehr gut. Gibt es da schon fertige Klassen (event. auch in VC++) oder irgendwelche Seiten über die Vorgehensweise bei soetwas?



  • Ob's in c++ Klassen dafür gibt (evtl. STL)
    kann ich dir net sagen.
    Ich würde einfach mal googeln (Stichworte Node, Baumstruktur etc.).
    Du wirst sicher etwas finden.
    Die Implemntierung ist eigentlich auch nicht schwer.

    Gruß,
    Markus



  • Danke, hab schon paar Sachen gefunden, die mich alle samt mit Hass auf mein Fach Algorithmen und Datenstrukturen zurückblicken ließen 😃


Anmelden zum Antworten