Esercizi Pratici: Tipi di Riferimento
Adesso che abbiamo esplorato i meandri dei puntatori e delle reference, è il momento di tradurre la teoria in codice. Prova a risolvere questi esercizi proposti alla fine del capitolo.
Esercizio 1: Da Singly a Doubly Linked List
Section titled “Esercizio 1: Da Singly a Doubly Linked List”Nell’esempio della sezione sulle strutture dati collegate abbiamo creato una Singly Linked List (lista collegata singolarmente), dove ogni elemento puntava solo in avanti al successivo (next).
Obiettivo: Trasforma la struttura Element per renderla una Doubly Linked List (lista doppiamente collegata).
- Aggiungi un puntatore
Element* previous{}. - Modifica o crea i metodi necessari affinché ogni volta che si inserisce un elemento, sia i puntatori
nextche i puntatoripreviousvengano aggiornati correttamente. - Attraversa la lista in avanti (come già fatto), ma poi prova ad attraversarla al contrario partendo dall’ultimo nodo e usando
previous.
Usa l’editor sottostante. L’output atteso dal test presuppone che tu stampi le truppe in ordine diretto e poi in ordine inverso!
Esercizio 2: Code Refactoring con auto
Section titled “Esercizio 2: Code Refactoring con auto”Abbiamo imparato che auto riduce la verbosità ed aumenta la robustezza del codice.
Obiettivo: Riscrivi il seguente codice sostituendo i tipi espliciti con auto. Presta molta attenzione all’utilizzo di & o * assieme ad auto se il tipo originale era una reference o un puntatore!