La cosa è più difficile di quello che sembra XD
http://www.megaupload.com/?d=FN02MZX3
qui c'è il progetto scritto con il Dev.
Ho oscurato la chiamata di sistema per eseguire il programma Tree Tagger, così funziona normalmente 
Le funzione interessate dall'array di puntatori sono il main, costruisci array, heap sort, quick sort.
Edit. Al momento non si può ancora scaricare...bah...
nel frattempo provo ad utilizzare il tag->
codice:
struct lista{
char Parola[LenMax];
char Pos[LenPos];
char Lemma[LenMax];
int Frequenza;
struct lista *nodo_successivo; };
typedef struct lista *Lista;
direttamente dal Main
codice:
Lista *A;//array di tipo lista
A = malloc(N_parole * (sizeof(struct lista)));
Costruisci_Array(testa,A,N_parole);
//alloca e costruisci l' array
Heapsort(A,N_parole);
codice:
void Costruisci_Array(Lista ptr, Lista *A, int N_parole)
{
//printf("\nHai inserito %d parole\n",N_parole);
int i=0;
while(i<=N_parole && ptr!=NULL){
A[i]=ptr;
(ptr)=(ptr)->nodo_successivo;
i=i+1;
}
}
Questo è l'heap sort
codice:
void Heapsort(Lista *A,int N_parole)
{
int i,heapsize;
heapsize=N_parole;
BuildHeap(A,heapsize,N_parole);
for (i=N_parole ; i>0 ; i--)
{
Scambia(A,0,i);
heapsize--;
Heapify(A,0,heapsize);
}
}
così giustamente funziona...ma il professore vuole un array di puntatore di tipo Lista, dove ogni nodo punta ad un nodo della lista...mentre io ho fatto un array di tipo lista dove in ogni A[i] ho assegnato il nodo della lista.