caliente
16-11-2011, 17:53
Salve a tutti, sto frequentando il corso di fondamenti di Informatica e da poco abbiamo introdotto l'implementazione in C delle lista. Le slide del professore non mi sono parse molto chiare e gradirei una spiegazione in dettaglio dei seguenti blocchi di codice:
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
typedef struct{
int giornoDelMese;
char notaDelGiorno[50];
} paginaAgenda;
structUnElementoDellaLista;
typedef UnElementoDellaLista* PuntUnElementoDellaLista;
typedef struct UnElementoDellaLista{
paginaAgenda pagina;
UnElementoDellaLista*elementoSuccessivo;
} UnElementoDellaLista;
UnElementoDellaLista* inserisciInTesta(PuntUnElementoDellaLista L, int i, char* Testo) {
PuntUnElementoDellaLista tmpPunt;
tmpPunt=(PuntUnElementoDellaLista) malloc(sizeof(UnElementoDellaLista));
tmpPunt‐>elementoSuccessivo=L;
tmpPunt‐>pagina.giornoDelMese=i;
strcpy(tmpPunt‐>pagina.notaDelGiorno,Testo);
return(tmpPunt);
}
void stampaLista(PuntUnElementoDellaLista L){
PuntUnElementoDellaLista tmpPunt;
tmpPunt=L;
while(tmpPunt!=NULL) {
printf("Giorno del mese %d\n", tmpPunt‐>pagina.giornoDelMese);
printf("Giorno del mese %s\n", tmpPunt‐>pagina.notaDelGiorno);
tmpPunt=tmpPunt‐>elementoSuccessivo;
}
}
int main(){
PuntUnElementoDellaLista Lista;
Lista=NULL;
int i=1;
char text[20];
printf("Inserisci la nota per il giorno %d: \n", i);
scanf("%s", text);
while(strcmp(text,"fine")!=0) {
Lista=inserisciInTesta(Lista, i, text);
printf("Inserisci la nota per il giorno %d: \n", i);
scanf("%s", text);
i++;
}
stampaLista(Lista);
free(Lista);
system("PAUSE");
return 0;
}
p.s Vi prego di essere quanto più chiari possibili. Sono alla mia prima esperienza di programmazione e ciò che a voi potrà apparire scontato per me non lo è affatto.
Vi ringrazio tutti in anticipo.
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
typedef struct{
int giornoDelMese;
char notaDelGiorno[50];
} paginaAgenda;
structUnElementoDellaLista;
typedef UnElementoDellaLista* PuntUnElementoDellaLista;
typedef struct UnElementoDellaLista{
paginaAgenda pagina;
UnElementoDellaLista*elementoSuccessivo;
} UnElementoDellaLista;
UnElementoDellaLista* inserisciInTesta(PuntUnElementoDellaLista L, int i, char* Testo) {
PuntUnElementoDellaLista tmpPunt;
tmpPunt=(PuntUnElementoDellaLista) malloc(sizeof(UnElementoDellaLista));
tmpPunt‐>elementoSuccessivo=L;
tmpPunt‐>pagina.giornoDelMese=i;
strcpy(tmpPunt‐>pagina.notaDelGiorno,Testo);
return(tmpPunt);
}
void stampaLista(PuntUnElementoDellaLista L){
PuntUnElementoDellaLista tmpPunt;
tmpPunt=L;
while(tmpPunt!=NULL) {
printf("Giorno del mese %d\n", tmpPunt‐>pagina.giornoDelMese);
printf("Giorno del mese %s\n", tmpPunt‐>pagina.notaDelGiorno);
tmpPunt=tmpPunt‐>elementoSuccessivo;
}
}
int main(){
PuntUnElementoDellaLista Lista;
Lista=NULL;
int i=1;
char text[20];
printf("Inserisci la nota per il giorno %d: \n", i);
scanf("%s", text);
while(strcmp(text,"fine")!=0) {
Lista=inserisciInTesta(Lista, i, text);
printf("Inserisci la nota per il giorno %d: \n", i);
scanf("%s", text);
i++;
}
stampaLista(Lista);
free(Lista);
system("PAUSE");
return 0;
}
p.s Vi prego di essere quanto più chiari possibili. Sono alla mia prima esperienza di programmazione e ciò che a voi potrà apparire scontato per me non lo è affatto.
Vi ringrazio tutti in anticipo.