#include #include // Creo la struttura per creare la lista struct elemento { int inf; struct elemento *pun; }; // Prototipi delle funzioni struct elemento *aggiungiContatto(struct elemento *p, int a); void visualizzaContatto(struct elemento* p); int main () { int n=0,i; struct elemento *lista[10]; for (i=0;i<10;lista[i++]=NULL); lista[0] = aggiungiContatto(lista[0],n); n++; lista[0] = aggiungiContatto(lista[0],n); n++; lista[0] = aggiungiContatto(lista[0],n); n++; lista[1] = aggiungiContatto(lista[1],n); n++; lista[1] = aggiungiContatto(lista[1],n); n++; lista[2] = aggiungiContatto(lista[2],n); n++; lista[2] = aggiungiContatto(lista[2],n); puts ("Elementi lista[0]"); visualizzaContatto(lista[0]); puts ("Elementi lista[1]"); visualizzaContatto(lista[1]); puts ("Elementi lista[2]"); visualizzaContatto(lista[2]); puts ("\n\nPremi invio per uscire\n"); getch(); return 0; } struct elemento *aggiungiContatto(struct elemento *p, int a) { struct elemento *punt; if(p != NULL)/* creazione elementi successivi */ { // Alloco la memoria necessaria punt = (struct elemento *)malloc(sizeof(struct elemento)); // Metto il valore nell'informazione inf del puntatore punt->inf = a; // Metto il puntatore in testa alla lista punt->pun = p; } else /* creazione primo elemento */ { // Alloco la memoria necessaria p = (struct elemento *)malloc(sizeof(struct elemento)); // Metto il valore nell'informazione del puntatore p->inf = a; // pun punta a NULL, ovvero il marcatore di fine lista p->pun = NULL; // Assegno p a punt punt = p; } return(punt); } void visualizzaContatto(struct elemento* p) { while (p != NULL) { printf("Gli elemnti della lista sono :%d\n",p->inf); // Leggo l'elemento successivo p = p->pun; } return; }