Function numero_niveles (Arbol: in T_arbol) return natural
num: natural:=0;
Begin
If es_vacio (Arbol) then
return num;
else
if es_vacio(izquierdo(arbol)) then
numero_niveles(derecho(Arbol));
else
numero_niveles(Izquierdo(Arbol));
end if;
end if;
end numero_niveles;
//Aclaraciones: Si el arbol es vacio devuelve cero, sino sigue recorriendo el arbol, eligiendo un camino u otro en funcion de si el camino izquierdo es vacio o no, hasta recorrer todo el camino siguendo una sola trayectoria y devolviendo el numero de niveles
espero que este correcto (mas que nada porque tengo el examen en una semana jaja)
saludos