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.
Restituisce il riferimento all'elemento, se è presente, altrimenti restituisce null.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); } } }
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..
Qualche consiglio? Ho lo stesso problema anche con le funzioni di ricerca del massimo e del minimo in un albero.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);![]()


Rispondi quotando