@@ -47,11 +47,13 @@ namespace MST {
4747 virtual void build () = 0;
4848 bool nodePartOfMST (const basicGraph::bNode* gnode)
4949 {
50- return tree_.find (&treeNode (gnode)) != tree_.end ();
50+ treeNode tmpTreeNode = treeNode (gnode);
51+ return tree_.find (&tmpTreeNode) != tree_.end ();
5152 }
5253 treeNode* getTreeNode (const basicGraph::bNode* gnode)
5354 {
54- set<treeNode*, treeNodeCompare>::iterator niter = tree_.find (&treeNode (gnode));
55+ treeNode tmpTreeNode = treeNode (gnode);
56+ set<treeNode*, treeNodeCompare>::iterator niter = tree_.find (&tmpTreeNode);
5557 return niter == tree_.end () ? nullptr : *niter;
5658 }
5759 void print (bool edges_only=false )
@@ -177,8 +179,10 @@ namespace MST {
177179 {
178180 const basicGraph::bNode* u = sortedEdges[i]->n1 ();
179181 const basicGraph::bNode* v = sortedEdges[i]->n2 ();
180- auto uset = tree_.find (&treeNode (u));
181- auto vset = tree_.find (&treeNode (v));
182+ treeNode tmpUNode = treeNode (u);
183+ treeNode tmpVNode = treeNode (v);
184+ auto uset = tree_.find (&tmpUNode);
185+ auto vset = tree_.find (&tmpVNode);
182186 if (uset != tree_.end () && vset != tree_.end () &&
183187 (*uset)->iset_ != (*vset)->iset_ )
184188 {
@@ -297,4 +301,5 @@ namespace MST {
297301 };
298302}
299303
300- #endif GRAPH_MST_H
304+ #endif
305+
0 commit comments