Il problema principale e' che AddElem modifica solo la copia locale del puntatore, e non quella che e' presente nella struttura del padre.
Ti conviene cambiare il metodo facendo si' che la nuova foglia venga ritornata come valore da modificare nel padre.
Questo fra l'altro rende possibile creare l'albero vuoto con estrema semplicita':
Codice:
TreeNode* AddElem(TreeNode *aux, int val)
{
if(aux == NULL)
{
return new TreeNode(val, NULL, NULL);
}
else if(val <= aux->val)
aux->left =AddElem(aux->left, val);
else if(val > aux->val)
aux->right=AddElem(aux->right, val);
return aux
};
Tree()
{
root = NULL;
};
void Add(int val)
{
root = AddElem(root, val);
};