#include "set.h" #include "treeSet.h" #include using namespace std; TreeSet::TreeSet () { root = NULL; } bool insert (PBinTreeNode &t, int x) { if (t == NULL) { t = new BinTreeNode(x); return true; } else if (t->data == x) return false; else if (x < t->data) return insert (t->left, x); else return insert (t->right, x); } Set& TreeSet::add (int x) { if (insert (root, x)) size++; return *this; } bool TreeSet::member (int x) const { BinTreeNode *t = root; while (t != NULL) { if (t->data == x) return true; else if (x < t->data) t = t->left; else t = t->right; } return false; } void deleteAll (PBinTreeNode& t) { if (t != NULL) { deleteAll(t->left); deleteAll(t->right); delete t; t = NULL; } } Set& TreeSet::clear() { size = 0; deleteAll(root); return *this; } void TreeSet::copyMembers(Set& into) const { /*..to be done ..*/ } //************************************** unsigned long BinTreeNode::counter = 0; BinTreeNode::BinTreeNode (int d) { left = right = NULL; data = d; counter++; } BinTreeNode::~BinTreeNode () { --counter; }