| Код | template<class Type> class tree { private: node<Type>* root; private: node<Type>* make_node(const Type& obj) {return new node<Type>(obj);} public: class equal_objects {};
tree(): root(0) {}
void add(const Type& obj) { node<Type>* element=make_node(obj), *temp=root, *old=0; if (!root) { root=element; return; } while (temp) { old=temp; if (temp->data_<obj) temp=temp->right_; else if (temp->data_>obj) temp=temp->left_; else throw equal_objects; } if (old->data_>obj) old->left_=element; else old_->right_=element; } };
int main() { tree<int> a; for (int i=0; i<100; ++i) a.add(i); return 0; }
|
|