codice:
struct nodo {
  int inf;
  struct nodo *alb_sin;
  struct nodo *alb_des;
};

struct nodo *crea_nodo(struct nodo *p, int val)
{
if(p==NULL){ /*il punto di inserimento è stato reperito */
  /* Creazione del nodo */
  p = (struct nodo *) malloc(sizeof(struct nodo));
  p->inf=val;
  p->alb_sin = NULL;
  p->alb_des = NULL;
}
else {
  if(val > p->inf)
    /* visita il sottoalbero destro */
    p->alb_des = crea_nodo(p->alb_des, val);
  else
    if(val < p->inf)
    /* visita il sottoalbero sinistro */
    p->alb_sin = crea_nodo(p->alb_sin, val);
}
return(p); /* Ritorna il puntatore alla radice */
}