123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #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<Node*>::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);
-
- }
|