INSERIMENTO LISTA void InsertList(list *l, position p, tipobaseList x){ struct nodoList *temp; if(!FullList(*l)){ temp = (struct nodoList *)malloc(sizeof(struct nodoList)); temp->info = x; if(p == LISTAVUOTA){ temp->next = *l; *l = temp; }else{ temp->next = p->next; p->next = temp; } } } INSERIMENTO LISTA GENERICA IN POSIZIONE GENERICA (PRIMA POSIZIONE ESCLUSA) CD00 FF00
AB00
INSERIMENTO LISTA VUOTA O NELLA PRIMA POSIZIONE HH00
l NULL HHOO
x NULL
temp
l FF00
CD00 HH00 HH00
x
×
pCD00
*
AB00
NULL
position First(list l){ return LISTAVUOTA; }
pAB00
L’ULTIMO ELEMENTO HA CAMPO NEXT NULL POICHE’:
CDOO
temp
INSERIMENTO IN PRIMA POSIZIONE RIENTRA IN QUESTO CASO POCHE’ DEFINIAMO IN PRECEDENZA:
* INSERIMENTO IN POSIZIONE 2
position End(list l){ if(l==LISTAVUOTA) return LISTAVUOTA; while(l =! LISTAVUOTA) l = l->next; return l; }