Una Lista Doppia Puntata è un insieme dinamico in cui ogni elemento ha uno o più campi contenenti informazioni e due riferimenti, uno all’elemento successivo (next) della lista ed uno all’elemento precedente (prev) della lista.
Per definire la struttura di un elemento di una lista doppiamente puntata bisogna utilizzare due puntatori alla stessa struttura. Il primo punterà all’elemento precedente mentre il secondo punterà a quello successivo (vedi figura).
Per l’inizializzazione di una lista doppiamente puntata si può considerare il codice visto per l’inizializazione delle liste singolarmente puntate, introducendo opportunamente il codice per la gestione del puntatore all’elemento precedente.
La funzione crea_lista() crea due puntatori ad elemento, uno di nome p (puntatore al primo elemento della lista) e l’altro di nome punt (puntatore che permette di scorrere la lista).
Una Lista Circolare puntata è un una lista puntata in cui il puntatore next dell’ultimo elemento della lista punta all’elemento in testa alla lista.
Infine, se la lista è doppiamente puntata, il puntatore prev della testa della lista punta all’elemento in coda alla lista.
Supponiamo di voler inserire un elemento valore in una lista prima dell’elemento puntato da pos.
Siano L1 e L2 due liste non circolare doppiamente puntate definite da… (vedi figura)
Si supponga che L1 e L2 siano ordinate in senso crescente.
Scrivere una funzione ricorsiva in linguaggio C che prese in input le due liste L1 e L2 generi una nuova lista L3 ordinata in senso crescente che contenga tutti gli elementi di L1 e L2
1. Introduzione al Corso - Il Linguaggio C (I parte)
2. Linguaggio C – Seconda Parte
3. Ordinamento, Ricorsione e Code di Priorità
4. Esercitazione su Ricorsione e Code di Priorità
5. Stack e Code
6. Esercitazione di Laboratorio su Stack e Code
7. Implementazioni di Liste puntate
8. Esercitazione di laboratorio su Liste Puntate Semplici
9. Implementazioni di Liste Doppiamente Puntate e Circolari
10. Esercitazione di laboratorio su Liste Doppiamente puntate
12. Esercitazione di laboratorio su Alberi Binari di Ricerca
13. Alberi Binari di Ricerca. Cancellazione di un nodo
14. Esercizio di Laboratorio. Gioco su alberi
15. Grafi: Implementazione ed operazioni di base
16. Esercitazione di laboratorio: Implementazione operazioni di bas...
17. Grafi: Inserimento e Cancellazione di un nodo. Visite in ampiez...
18. Esercitazione di laboratorio: Problema del venditore Prima part...
19. Componenti fortemente connesse e alberi minimi di copertura
20. Esercitazione di laboratorio: Problema del venditore Seconda pa...