Ciao a tutti, sono nuovo e spero che mi aiutate a trovare il problema!
Sto impazzando dietro a questo problema, io passo un BST alla funzione la quale deve trovarmi il nodo che contiene una chiava, il problema è che quando trova il nodo mi restitusice il nodo a NULL anche se appena prima del retrun la variabile Tmp di tipo NODO contiene esattamente l'indirizzo che contiene la chiave.
Ciò che non capisco è perche ritorna NULL al posto del valore trovato!
Cosa ho sbagliato ??? perche non mi fa ritornare il puntatore a cui sono arrivato ???
Grazie mille in anticipo! ciao
codice:
NODE *BstVisitInOrder(BST *B,char *cmp)
{
NODE *K;
K = _BstVisitInOrder(B->root,cmp);
printf("%s\n",K->info);
return (K);
}
NODE *_BstVisitInOrder(NODE *Tmp,char *cmp)
{
if(Tmp==0)
return NULL;
if(strcmp(Tmp->info,cmp)==0)
return (Tmp);
_BstVisitInOrder(Tmp->sx,cmp);
printf("%s\n",Tmp->info);
_BstVisitInOrder(Tmp->dx,cmp);
}