Con una double linked list, dat oche la testa abbia *prev = NULL e la coda *next = NULL, ti serve un puntatore ad un qualunque elemento della lista ed una strategia. Come pensi di aggiungere nuovi elementi? In testa o in coda?
Creati una funzione di supporto che generi un nuovo elemento, allocandone la memoria, inizializzando i suoi elementi (next e prev a NULL). Poi agganci l'elemento dove ritieni piu opportuno nella lista.
All'inizio la tua lista sara vuota, quindi avrai un puntatore a NULL. Aiutati con una seconda funzione che aggiunga nuovi elementi. Qui, se il puntatore alla lista 'e vuoto, rendera il primo nuovo elemento la testa e coda della lista stessa .Else lo agigungera dove ritieni sia corretto. Qualora lo voglia agigungere alla coda, itera fino all'elemento con next = NULL. Qui farai elemento_corrente->next = nuovo_elemento. nuovo_element_>prev = elemento->corrente.
Se il nuovo elemento sara la nuova testa il discorso e' simile. Se lo aggiungi invece nel mezzo della lista, attento a non perder la reference tra i due elementi tra i quali lo aggiungerai.
Similmente, potresti creare funzioni che rimuovan un elemento e che la scorrano.

Rispondi quotando