salve ragazzi...sto cercando di capire le liste ma mi sembrano un argomento molto ostico perciò chiedo a voi .......ho questo codice ....con una struct e la funzione per la creazione di una lista........quello che devo fare è creare la "classica" funzione che elimini il primo elemento in testa della lista ........come posso fare?
Codice:
struct Piano {
unsigned short numero_piano;
struct Piano *prossimo_piano;
}Piano;
struct Piano *crea_listaNinja() {
struct Piano *p, *punt; int i, n,x=1;
n=Ninja.zaino[materiale];
if(n==0) { p = NULL; //
} else { /* creazione primo elemento */
p = (struct Piano *)malloc(sizeof(struct Piano));
p->numero_piano=Ninja.zaino[materiale];
punt = p;
/* creazione elementi successivi */
for(i=1; i<n; i++)
{
punt->prossimo_piano = (struct Piano *)malloc(sizeof(struct Piano));
punt = punt->prossimo_piano;
punt->numero_piano=Ninja.zaino[materiale]-x ;
++x;
} // chiudo il for
punt->prossimo_piano = NULL; // marcatore fine lista
} // chiudo l’if-else
return(p);}