Ciao a tutti,
sono nuovo e una "schiappa" in informatica,
volevo esporvi un esercizio con sicuramente una mia errata soluzione:

Si consideri una lista concatenata semplice di dati su alberghi caratterizzati dal loro nome, dalla partita IVA e dal numero di camere doppie e singole. La struttura della lista è:
codice:
typedef struct Node { int    partitaIVA; 
                      char * nome; 
               int    numSingole; 
               int    numDoppie; 
                 struct Node * next;  } Nodo; 

typedef Nodo * Lista;
Si implementi la funzione di prototipo Lista estraiInOrdine( Lista lis ) che riceve una lista non ordinata e restituisce una lista contenente solo gli alberghi con più doppie che singole ordinati per partitaIVA. Si utilizzino opportune funzioni ausiliarie per dividere il problema in sottoproblemi più semplici.

allor io ho fatto:

codice:
Lista Estrai(lista lis){ 

Lista tmp; 
tmp=NULL; 
While(lis!=NULL){ 
if((lis-> NumDoppie)> (lis->NumSingole)) 
inseriamolista(&tmp, lis-> NumDoppie); 

lis=lis->Next;}}


void Inseriamolista(Lista *lis,Nodo a){ 
lista temp; 
temp=Malloc(sizeof(Nodo)); 
temp->Numdoppie=a; 
temp->next=*lis; 

*lis=temp;}

mi rimane di ordinare,per codice iva,come agisco?
forse conviene prima ordinare e poi selezionare quelli con Stanze doppie no?