L'ultimo codice (eccetto che c'erano le ricorsioni in cui mancavano i parametri) è perfetto...il problema è che dovrei farei una sola funzione che restituisca la media dei valori di un albero. Avevo anche pensato di farlo in modo non ricorsiva ma non saprei come...come potrei??
..di seguito porto il codice della funzione ricorsiva da me scritta:
codice:
typedef struct nodo
{
double value;
struct nodo *right;
struct nodo *left;
} NODO;
double avg(NODO *a, double *sum, int *count)
{
if(a==NULL){ return 0;}
else
{
*sum+=a->value; *count++;
avg(a->left, sum, count);
avg(a->right, sum, count);
}
return *sum/(*count);
}
penso che a rompere sia il caso banale o sia il return finale messo in maniera sbagliata
Ringrazio in anticipo per le risposte
PS: Nella funzione somma non sarebbe più opportuno mettere l'else prima del return???