Salve a tutti, ho un problema con la ricerca di un intero all'interno di un albero binario.
Questa è la funzione di ricerca, presa dal libro di testo da cui sto studiando, e mi è chiara.

codice:
TNode *binarytree_search(TBinaryTree bt, TInfo info){
    /* Caso base: Albero vuoto oppure la root è l'elemento cercato */
    if((bt==NULL) || bt->info==info){
        return bt;
    }else{
        if(info>bt->info){
            /* Fase di divide et impera */
            return binarytree_search(bt->right, info);
        }else{
            /* Fase di divide et impera */
            return binarytree_search(bt->left, info);
        }
    }
}
Restituisce il riferimento all'elemento, se è presente, altrimenti restituisce null.
Ma ho un dubbio, non riesco a capire cosa voglia dire "restituisce il riferimento"..
Come posso stampare il numero di occorrenze del numero cercato? La funzione è di tipo TNode e non capisco perchè, di solito le funzioni di ricerca sono di tipo int.

Ho provato così ma ho sicuramente combinato un macello, anche se non mi da errori..

codice:
printf("Inserisci l'elemento che vuoi cercare: ");
scanf("%d", &num);
src=binarytree_search(bt, num);
printf("L'elemento e' presente %d volte\n\n", src);
Qualche consiglio? Ho lo stesso problema anche con le funzioni di ricerca del massimo e del minimo in un albero.