codice:
struct STree
{
int item;
STree *l, *r;
STree(int Item, STree *L, STree *R)
{
item = Item;
l = L;
r = R;
}
};
typedef STree *node;
class CTree
{
private:
node tree;
int rad;
public:
CTree();
CTree(int n);
~CTree();
void add(int n);
int serch(int n);
};
CTree::CTree()
{
rad = 0;
tree = new STree(0, NULL, NULL);
}
// init tree
CTree::CTree(int n)
{
rad = n;
tree = new STree(n, NULL, NULL);
}
CTree::~CTree()
{
}
void CTree::add(int n)
{
node p = tree;
while( (p->l != NULL) && (p->r != NULL) )
{
if(n > rad)
{
p = p->l;
}
else
{
p = p->r;
}
}
if(p->l == NULL)
{
p->r->item = n;
}
else if(p->r == NULL)
{
p->l->item = n;
}
}
int CTree::serch(int n)
{
node p = tree;
while( (p->l != NULL) && (p->r != NULL) && (p->item != n) )
{
if(n > rad)
{
p = p->l;
}
else
{
p = p->r;
}
}
return p->item;
}
Dove sbaglio??
Tnk 100000000000