|
|
@ -22,17 +22,21 @@ Node::~Node() |
|
|
|
* funkcja symuluje typową sytuację: mamy kartę sieciową, a funkcja connectNode jest podłączeniem wtyczki |
|
|
|
* z jednej strony |
|
|
|
*/ |
|
|
|
bool Node::connectNode(Node *node) |
|
|
|
bool Node::connectNode(Node *node, bool firstConnected) |
|
|
|
{ |
|
|
|
vector<Node*>::iterator it = this->connectedNodes.begin(); |
|
|
|
for (; it != this->connectedNodes.end(); ++it) //sprawdzamy, czy połączenia już przypadkiem nie ma
|
|
|
|
if (!firstConnected) |
|
|
|
{ |
|
|
|
if (*it == node) |
|
|
|
return false; |
|
|
|
vector<Node*>::iterator it = this->connectedNodes.begin(); |
|
|
|
for (; it != this->connectedNodes.end(); ++it) //sprawdzamy, czy połączenia już przypadkiem nie ma
|
|
|
|
{ |
|
|
|
if (*it == node) |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this->connectedNodes.push_back(node); // podłączamy drugi węzeł
|
|
|
|
node->connectNode(this); // podłączamy drugą stronę
|
|
|
|
|
|
|
|
if (!firstConnected) |
|
|
|
node->connectNode(this, true); // to samo w drugą stronę
|
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|