uffa ... non riesco a capire!! come si crea una lista bidirezionale in C ?? dal C++ non lo so adattare ...........

questo crea una lista monodirezionale, per renderla BIdirezionale basta fare qualche modifica o non ci azzecca proprio ??

codice:
struct lista *creaLista() {
       struct lista *p, *aux;
       int i, n;
       
       printf("\nDa quanti lista e' composta la lista? ");
       scanf("%d", &n);
       
       if (n==0) p = NULL;
       else {
            p = (struct lista *)malloc(sizeof(struct lista));
            printf("\nInserisci la 1a informazione: ");
            scanf("%d", &p->inf);
            aux = p;
            
            for(i=2; i<=n; i++) {
                     aux->next = (struct lista *)malloc(sizeof(struct lista));
                     aux = aux->next;
                     printf("Inserisci la %da informazione: ", i);
                     scanf("%d", &aux->inf);
            }
            aux->next = NULL;
            }
       return(p);
}