Salve a tutti,
Sto facendo un progetto per l'università, dove si richiede, tra le altre cose, di creare degli alberi binari di ricerca e calcolare la complessità con uno studio sperimentale.
Ho creato una funzione ricorsiva (funzionante) che cerca i vari nodi e li stampa, il problema è che non sono sicuro che conti correttamente i passi svolti, dato che come risultato mi da un valore che secondo me è troppo basso. Dato che non sono molto familiare con i puntatori, indirizzi ecc... ho paura che in qualche modo, dopo la chiamata ricorsiva, la variabile non si incrementi come dovrebbe.
Di seguito il codice della funzione, grazie in anticipo
void cerca_in_albero_ric(nodo_albero_bin_t *radice, char nome_cpu[7], int *passi)
{
nodo_albero_bin_t *nodo_p;
for (nodo_p = radice;
((nodo_p != NULL) && strcmp(nodo_p->nome,nome_cpu)!=0);
nodo_p = strcmp(nome_cpu,nodo_p->nome)<0?
nodo_p->sx:
nodo_p->dx)
(*passi)++;
if(nodo_p!=NULL)
{
stampa_valori(nodo_p);
(*passi)++;
cerca_in_albero_ric(nodo_p->dx, nome_cpu, passi);
}
}