Zirkulare Abhängigkeiten überprüfen



  • class Vertex
    {
    public:
        void add_edge( Vertex target );
        void remove_edge( Vertex target );
    private:
        Ding& das_ding;
        std::vector<Vertex*> edges;
    };
    
    class adjacency_list
    {
    public:
    // Ein paar nette Methoden spendieren
        void add_vertex( Vertex vert );
        void remove_vertex( Vertex vert );    // Entfernt vert und seine edges
        void clear_vertex( Vertex vert );     // Entfernt nur die edges von vert
        void add_edge( Vertex source, Vertex target );
        void remove_edge( Vertex source, Vertex target );
    
    private:
        std::vector<Vertex*> vertices;
    };
    
    // Iteratoren fehlen noch
    

    Oder so ähnlich, am besten als Template 🙂


Anmelden zum Antworten