codice:

Albero Albero_Vuoto(void)
{
 
  return(NULL);
}




Albero Crea(int val,Albero sin,Albero des)
{
  Albero RADICE;
 
  RADICE =  malloc(sizeof(Nodo));
  RADICE->inf = val;
  RADICE->sinistro = sin;
  RADICE->destro = des;
  return (RADICE);
}




int sommaRic(Albero a) {
    int s=0;
  if(emptyL(a)) return(0);

  else return( a->inf+sommaRic(a->sinistro) + sommaRic(a->destro));
}


void stampaAlbero(Albero a) {
if (!(emptyL(a))) {
    stampaAlbero(a->sinistro);
    stampaAlbero(a->destro);
    // Sostituire cout con altre operazioni per altri scopi di visita
    printf("\n%d",a->inf);
  }

}


int altezza(Albero a) {
    int as=0;int ad=0;
  if(emptyL(a)) return(0);
  else{
      as=altezza(a->sinistro),ad=altezza(a->destro);
      if(as==ad) return as+1; /* se sono profondi uguali è indifferente*/
      if(as>ad) return as+1;
      else return ad+1;
}}


Lista cammino(Albero a, Tipo_el e) {
  int c=0;
  c=cerca(a,e);
  if(c!=1) {printf("\nL'elemento non e' presente");
  return NULL;}
  else {printf("\nL'elemento e' presente");
  }
}


int cerca(Albero a, int x)
{
  if (a == NULL) return 0;
  else if (a->inf == x) return 1;
    else return cerca(a->sinistro,x) || cerca(a->destro,x);
}


int camminoMax(Albero a, Lista* c) {
 return 0;
}
Dovrei creare un a funzione CamminoMax per arrivare ad una foglia dell' albero e ritornare anche la profondità,come posso fare?