Questa è una funzione che "dovrebbe"sommare solo gli elementi dell'albero che sono a livello dispari.
Secondo me questa funzione non arriva a tutti i nodi dell'albero fino in profondità,voi che ne pensate?Perchè appena c'è una return t->item non procede più per quel sottoalbero.
codice:typedef struct nodo *ptree; typedef struct nodo { int item; ptree left, right; } nodeDescriptor; // la funzione e' chiamata con liv=0; int somma_livelli_dispari(ptree t, int liv){ if (t==NULL) return 0; if (liv%2) return t->item; else return somma_livelli_dispari(t->left, liv+1) + somma_livelli_dispari(t->right, liv+1); }

Rispondi quotando