Salve a tutti! Sto studiando per un esame di Fondamenti di Informatica, e sono proprio alle prime armi con l'utilizzo del linguaggio C. Ho incontrato alcuni problemi con le liste: dopo tanti tentativi non riesco a capire come ordinare alfabeticamente una lista.
Un esempio di codice che ho creato è questo, potreste indicarmi una soluzione,ad esempio una funzione di ordinamento??
Vi ringrazio in anticipo per la disponibilità!
codice:
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
typedef struct {
int num; char nome[30];
}Invitato;
struct InvitoFesta;
typedef InvitoFesta*PuntInvitoFesta;
typedef struct InvitoFesta{
Invitato invito;
InvitoFesta *invitatoSuccessivo;
}InvitoFesta;
InvitoFesta*inserisci(PuntInvitoFesta L,int i,char*testo){
PuntInvitoFesta nuovo;
nuovo=(PuntInvitoFesta) malloc(sizeof(InvitoFesta));
nuovo->invitatoSuccessivo=L;
nuovo->invito.num=i;
strcpy(nuovo->invito.nome,testo);
return (nuovo);
}
void stampaLista (PuntInvitoFesta L){
PuntInvitoFesta nuovo;
nuovo=L;
while(nuovo!=NULL){
printf("%s\n",nuovo->invito.nome);
nuovo=nuovo->invitatoSuccessivo;
}
}
int main (){
PuntInvitoFesta Lista;
Lista=NULL;
int i=1;
char text[20];
printf("Inserisci invitato num. %d: \n",i);
printf("(digita fine per terminare)\n");
scanf("%s",text);
while(strcmp(text,"fine")!=0){
Lista=inserisci(Lista,i,text);
printf("Inserisci invitato num. %d: \n",i);
printf("(digita fine per terminare)\n");
scanf("%s",text); i++;
}
printf("\n");
printf("Visualizzo Lista Invitati:\n");
stampaLista(Lista);
free(Lista);
system("PAUSE");
return 0;
}