1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #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);
- end->remove_neighboor(begin);
- }
|