Doraemond
20-06-2010, 20:22
devo svolgere un es in cui mi chiede di verificare tramite due funzioni booleane se un albero binario è bilanciato e se l'albero è perfettamente bilanciato
x l'albero bilanciato ho risolto in questo modo:
bool bilanciato(Pnodo L){
int nsx=0,ndx=0;
if(L!=NULL){
nsx=conta(L->sx);
ndx=conta(L->dx);
return (abs(nsx-ndx)<=1);
}
}
int conta(Pnodo L){
if(L!=NULL)
return 1+ conta(L->sx)+conta(L->dx);
else
return 0;
}
xrò x l'albero perfettamente bilanciato cosa dovrei verificare ??
x l'albero bilanciato ho risolto in questo modo:
bool bilanciato(Pnodo L){
int nsx=0,ndx=0;
if(L!=NULL){
nsx=conta(L->sx);
ndx=conta(L->dx);
return (abs(nsx-ndx)<=1);
}
}
int conta(Pnodo L){
if(L!=NULL)
return 1+ conta(L->sx)+conta(L->dx);
else
return 0;
}
xrò x l'albero perfettamente bilanciato cosa dovrei verificare ??