Code:
IntervalTree::IntervalTree(vector<Interval>& vec) : Tree() {
vector<Interval>::iterator it;
//createRoot( new Node(vec[0]) );
Tree::Node* r = 0;
int i=0;
for (it = vec.begin(); it != vec.end(); ++it) {
if ( r == 0) { createRoot( new Node( *it ) ); r = getRoot(); continue; }//1
i %=2;
if (i == 0) {
r->setLeft( new Tree::Node( *it ) );
r = r->getLeft();
}
else if (i == 1) {
r->setRight( new Tree::Node( *it ) );
r = r->getRight();
}
++i;
}
}
Is good the use of setLeft() and right() and the line //1 ? Any simple suggest ?