Originariamente inviato da goatboy
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.