#include "graph.h" void Node::add_neigboor(Node* neighboor) { neighboors.insert(neighboor); } void Node::remove_neighboor(Node* neighboor) { neighboors.erase(neighboor); } Node::Node(const string& aname) { name = aname; } const string Node::get_name() const { return name; } void Graph::add_node(Node* node) { nodes.insert(node); } void Graph::remove_node(Node* node) { nodes.erase(node); for (set::iterator it = nodes.begin(); it != nodes.end(); it++) { (*it)->remove_neighboor(node); } } void Graph::add_edge(Node* begin, Node* end) { if (nodes.find(begin) == nodes.end()) return; if (nodes.find(end) == nodes.end()) return; begin->add_neigboor(end); end->add_neigboor(begin); } void Graph::remove_edge(Node* begin, Node* end) { if (nodes.find(begin) == nodes.end()) return; if (nodes.find(end) == nodes.end()) return; begin->remove_neighboor(end); }