allora... penso di averla fatta, ma c'è qualcosa che mi sfugge, al 99% l'head non cammina bene
Codice PHP:
#include <stdio.h>
typedef struct nodo {
int frequenza;
struct nodo * next;
char parola[100];
} NODO;
NODO * InserimentoOrdinatoLista(NODO * head,char ParolaIns[])
{
int i=0;
if (!head)
{
NODO *NuovoNodo = (NODO*)malloc(sizeof(NODO));
NuovoNodo->next=NULL;
NuovoNodo->frequenza=0;
strcpy(NuovoNodo->parola,ParolaIns);
//printf("%s PRIMO NODOoooooooooooooooooooooooooooooo\n",NuovoNodo->parola);
NuovoNodo->next=head;
head=NuovoNodo;
}
else
{
if ( (strcmp (ParolaIns,head->parola) )==0) // se le due parole sono uguali
{
head->frequenza=head->frequenza+1; //aumenta il campo frequenza
}
else
if ( (strcmp(ParolaIns,head->parola) )<0 )
{
NODO *NuovoNodo = (NODO*)malloc(sizeof(NODO));
NuovoNodo->next=NULL;
NuovoNodo->frequenza=0;
strcpy(NuovoNodo->parola,ParolaIns);
// printf("%s DEBUG 2\n",NuovoNodo->parola);
// printf("%s DEBUG 3\n",ParolaIns);
NuovoNodo->next=head;
head=NuovoNodo;
}
else
head=InserimentoOrdinatoLista(head->next,ParolaIns);
}
return head;
}
cosa sbaglio?