#include <stdio.h> // Contiene "scanf()" e "printf()".
#include <malloc.h> // Contiene "malloc()".
struct ElementoLista // Una struttura è un nuovo tipo composto da più variabili.
{
int valore ; // Almeno una variabile è per i dati.
struct ElementoLista *puntSucc ; // Puntatore al successivo elemento.
} ;
int main()
{
struct ElementoLista *puntPrimo , *puntPrec , *puntNuovo ; // Puntatori di supporto.
int n , i , v ; // Variabili di supporto.
// LETTURA DEL NUMERO DI ELEMENTI PER LA LISTA
printf( "\n Numero elementi della Lista: " ) ; scanf( "%d" , &n ) ;
// LETTURA DEI VALORI E COSTRUZIONE DELLA LISTA
for ( i=0 ; i<n ; i++ )
{
printf( "\n %d° valore: " , i+1 ) ; scanf( "%d" , &v ) ;
// Allocazione dell'i-esimo elemento della Lista.
puntNuovo = (struct ElementoLista *)malloc(sizeof(struct ElementoLista)*1) ;
puntNuovo->valore = v ;
if ( i==0 )
{
puntPrimo = puntNuovo ; // Si imposta la Testa della Lista in "puntPrimo"!!
}
else
{
// Dell'elemento precedente si aggiorna la parte puntatore a dove
// si trova il nuovo elemento.
puntPrec->puntSucc = puntNuovo ;
}
puntPrec = puntNuovo ;
}
puntPrec->puntSucc = NULL ; // Chiusura della lista.
// STAMPA DEI VALORI DELLA LISTA
puntNuovo = puntPrimo ; // La stampa riparte dalla Testa della Lista!!
for ( i=0 ; i<n ; i++ )
{
printf( "\n %d° valore inserito: %d\n" , i+1 , puntNuovo->valore ) ;
puntNuovo = puntNuovo->puntSucc ;
}
// FINE
return 0 ;
}