int altezza(albero T,int lvl){ if(T!=NULL){ int des,sin; des=altezza(T->dx,lvl+1); sin=altezza(T->sx,lvl+1); if(des>sin) return des; return sin; } return lvl-1; }
int albero_completo(albero T){ /* Dato un un albero binario T di interi, la funzione albero_completo deve ritornare un booleano: 1 se l'albero T è completo, 0 altrimenti. Un albero binario completo di altezza k è un albero binario in cui tutti i nodi, tranne le foglie, hanno esattamente due figli, e tutte le foglie si trovano al livello k. Se l'albero T è vuoto la funzione deve ritornare 0.*/ if(T!=NULL){ int h=altezza(T,0); if(conta_nodi_lvl(T,h)==pow2(2,h)) return 1; } return 0; }
/** da' come risultato l'altezza dell'albero */ int altezza(Albero a) { if(a == NULL) return -1; else return 1+max(altezza(a->left), altezza(a->right)); }