ok grazie e scusate...posto di seguito nuovamente tutto il codice ...
Questo è il mio FILE HEADER:
codice:
struct persona{
char nome[50];
char cognome[50];
};
typedef struct persona Persona;
struct elemSCL{
Persona elemento;
struct elemSCL* next;
};
typedef struct elemSCL nodoFilaSCL;
typedef nodoFilaSCL* filaSCL;
void creaFila(filaSCL* fila,int n);
filaSCL aggiungi(filaSCL fila,Persona p);
void stampa(filaSCL fila);
filaSCL raccomanda(filaSCL fila, Persona p, const int n);
int lunghezza(filaSCL fila);
FILE-MAIN.C:
codice:
int main(){
filaSCL fila3=NULL;
creaFila(&fila3,3);
const int n=2;
Persona p1={"Giulia","G"};
raccomanda(fila3,p1,n);
stampa(fila4);
printf("\n");
return 0;
}
FILE.C:
codice:
void creaFila(filaSCL* fila,int n){
if(n!=0){
Persona c;
filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL));
printf("inserisci nome:");
scanf("%s",c.nome);
printf("inserisci cognome:");
scanf("%s",c.cognome);
temp->elemento=c;
temp->next=*fila;
*fila=temp;
creaFila(fila,n-1);
}
filaSCL aggiungi(filaSCL fila,Persona p){
filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL));
temp->elemento=p;
temp->next=NULL;
filaSCL ultimo=fila;
while(ultimo->next!=NULL){
ultimo=ultimo->next;
}
ultimo->next=temp;
filaSCL temp1=fila;
return temp1;
}
filaSCL raccomanda(filaSCL fila, Persona p, const int n){
int len=lunghezza(fila);
if(n>len){
return aggiungi(fila,p);
}
else{
int num=n;
filaSCL ultimo=fila;
while(num!=1){
ultimo=ultimo->next;
num--;
}
filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL));
filaSCL temp1=ultimo;
temp->elemento=p;
temp->next=temp1;
ultimo=temp;
filaSCL fila2=fila;
return fila2;
}
}
int lunghezza(filaSCL fila){
if(fila!=NULL){
return 1+lunghezza(fila->next);
}
return 0;
}
void stampa(filaSCL fila){
if(fila!=NULL){
printf("%s %s ",fila->elemento.nome,fila->elemento.cognome);
stampa(fila->next);
}
}