Salve a tutti, sto frequentando il corso di fondamenti di informatica e abbiamo da poco introdotto le liste. Da quanto ho capito ci sono due modi per implementarle, tramite array o tramite puntatori. Nel secondo caso otterremmo una lista linkata, sfruttando la memoria dinamica.
Ora avrei bisogno di un aiuto nel "decifrare" la rappresentazione in c di una generica lista. Le slide del professore non mostrano l'intero codice ma soltanto i blocchi relativi alla lista. I blocchi in questione sono questi:
codice:typedef int E; struct Record; typedef Record *L; struct Record{ E elem; L next; };codice:L push(L l, E e){ L q; q =(L)malloc(sizeof(Record)); q->elem=e; q->next=l; return(q); }Ora avrei alcune domande:codice:L insert(L l,E e) { L q=l, prec; int PosTrovata=0; if (q==NULL) { q=push(l,e); return(q); } if (e <= q->elem) { q=push(l,e); return(q); } prec=q; while ((q->next!=NULL) && (PosTrovata== 0)) { if (e > q->next->elem) { prec=q; q= q->next; } else PosTrovata=1; } prec->next=push(q->next,e); return(l); }
1) Perche definisce un tipo di dato int E? E' comunque un tipo di dato intero che bisogno cè di definirlo?
2)Perche definisce un tipo Record *L? Non dovrebbe scrivere: struct Record *next?
3)Cosa rappresenta il parametro l? E la variabile q può essere considerato un puntatore temporaneo, giusto?
4)Per inserire effettivamente i dati nella lista, cosa devo scrivere all'interno del main?
Ringrazio tutti in anticipo.

