Skip to content

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).

  1. Aggiungi un puntatore Element* previous{}.
  2. Modifica o crea i metodi necessari affinché ogni volta che si inserisce un elemento, sia i puntatori next che i puntatori previous vengano aggiornati correttamente.
  3. 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!

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!