Facendo in questo modo:

//STRUTTURE:
struct ListaAdicenza{//struttura per gli elementi della lista di adiacenza
char Info;//nome del nodo
int Peso;//peso dell'arco entrante dal nodo relativo al primo elemento della riga della lista di adiacenza
struct ListaAdiacenza *PuntDestra;//puntatore all'elemento successivo della riga
struct ListaAdiacenza *PuntSotto;//puntatore all'elemento successivo della colonna (!=NULL solo per la prima colonna)
};

struct ListaNodi{//struttura per insiemi di nodi
char Info;//nome del nodo
struct ListaNodi *PuntProssimo;//puntatore all'elemento successivo
};

//ALIAS
typedef struct ListaAdiacenza lista;
typedef lista *PuntLista; //Assegnazione dell'alias PuntLista a ListaAdiacenza *
typedef struct ListaNodi nodi;
typedef nodi *PuntNodi; //Assegnazione dell'alias PuntNodi a ListaNodi *
ho l'errore "invalid application of `sizeof' to an incomplete type" alla riga:

PuntLista PuntNuovo;
PuntNuovo = (PuntLista) malloc(sizeof(lista)); //Chiede spazio in memoria
Il typedef corrente dovrebbe star bene in quanto facendo una cosa in un altro programma in C tutto va come dovrebbe.