Scheda di esercizi di Strutture dati con soluzioni

Scheda di esercizi di Strutture dati gratuita e stampabile: 8 esercizi dal livello facile a quello d’esame, con le soluzioni. Stampala o salvala come PDF.

Per i docenti: gratuita da stampare, copiare e usare in classe. Ogni nuova scheda ha nuovi valori e le sue soluzioni. Un link a ExamProblems nella pagina del corso è molto apprezzato.

Nome: ____________________   Data: ____________

1.Facile

Nella rappresentazione di un grafo con liste di adiacenza, che cosa si memorizza per ogni vertice?

  1. AIl cammino minimo verso ogni altro vertice
  2. BUna riga di V valori booleani
  3. CUna lista dei suoi vertici adiacenti
  4. DIl numero totale di archi del grafo
2.Facile

Che cos'è la radice di un albero?

  1. AIl nodo con il valore più grande
  2. BUn nodo senza figli
  3. CUn qualsiasi nodo intermedio
  4. DIl nodo più in alto, privo di genitore
3.Facile

Quale struttura dati funziona secondo il principio «primo a entrare, primo a uscire» (FIFO)?

  1. AAlbero binario
  2. BPila (stack)
  3. CHeap
  4. DCoda (queue)
4.Media

Perché in pratica percorrere un array è spesso molto più veloce che percorrere una lista concatenata della stessa lunghezza?

  1. AGli elementi dell'array sono contigui, quindi sfruttano bene la cache della CPU
  2. BLa visita di un array è O(1) in totale, mentre quella di una lista concatenata è O(n)
  3. CGli array usano meno istruzioni per confrontare i valori
  4. DLe liste concatenate memorizzano sempre gli elementi su disco
5.Media

Un albero binario ha radice 1 con figlio sinistro 2 e figlio destro 3; il nodo 2 ha figli 4 (sinistro) e 5 (destro). Qual è la visita in postordine?

  1. A4 5 2 3 1
  2. B4 2 5 1 3
  3. C1 2 4 5 3
  4. D5 4 3 2 1
6.Media

Un trie (albero dei prefissi) è particolarmente efficiente per:

  1. ARicerche per prefisso, come il completamento automatico
  2. BMemorizzare matrici
  3. COrdinare numeri
  4. DTrovare cammini minimi
7.Difficile

Che cosa fa uno splay tree dopo ogni accesso?

  1. ARicostruisce l'intero albero in forma bilanciata
  2. BPorta con rotazioni il nodo acceduto fino alla radice
  3. CSposta il nodo acceduto in una foglia
  4. DRicolora i nodi lungo il cammino di ricerca
8.Difficile

Un array dinamico raddoppia quando è pieno. Perché molte implementazioni lo riducono solo quando è pieno per un quarto, e non per metà?

  1. APer evitare ridimensionamenti ripetuti quando push e pop si alternano vicino alla soglia
  2. BPerché l'allocatore di memoria può liberare memoria solo a quarti di blocco
  3. CPer mantenere l'array ordinato
  4. DPerché dimezzare a metà farebbe perdere elementi

Soluzioni

  1. 1. C · Una lista dei suoi vertici adiacenti
  2. 2. D · Il nodo più in alto, privo di genitore
  3. 3. D · Coda (queue)
  4. 4. A · Gli elementi dell'array sono contigui, quindi sfruttano bene la cache della CPU
  5. 5. A · 4 5 2 3 1
  6. 6. A · Ricerche per prefisso, come il completamento automatico
  7. 7. B · Porta con rotazioni il nodo acceduto fino alla radice
  8. 8. A · Per evitare ridimensionamenti ripetuti quando push e pop si alternano vicino alla soglia

Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.