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 nochOder so ähnlich, am besten als Template
