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

Quale struttura dati è più adatta per la funzione «annulla» (undo) di un editor di testo?

  1. AInsieme hash (hash set)
  2. BGrafo
  3. CPila (stack)
  4. DCoda (queue)
2.Facile

Che cos'è la proprietà di max-heap?

  1. ALe chiavi sono ordinate da sinistra a destra
  2. BLa chiave di ogni genitore è maggiore o uguale alle chiavi dei suoi figli
  3. CTutte le foglie contengono la chiave massima
  4. DLa chiave di ogni figlio sinistro è maggiore o uguale a quella del fratello destro
3.Facile

In un albero, che cos'è una foglia?

  1. AUn nodo con esattamente un figlio
  2. BUn nodo senza figli
  3. CUn nodo senza genitore
  4. DIl nodo con il valore più grande
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. BLe liste concatenate memorizzano sempre gli elementi su disco
  3. CGli array usano meno istruzioni per confrontare i valori
  4. DLa visita di un array è O(1) in totale, mentre quella di una lista concatenata è O(n)
5.Media

Quale struttura dati usa la visita in profondità (DFS) nella versione iterativa?

  1. AUno stack
  2. BUna coda
  3. CSolo una tabella hash
  4. DUn heap
6.Media

A che cosa serve un nodo sentinella (fittizio) in una lista concatenata?

  1. AA rendere la lista ordinata
  2. BA memorizzare il numero di elementi
  3. CA impedire che la lista cresca oltre un numero massimo fisso di nodi
  4. DA semplificare il codice eliminando i casi particolari in testa o in coda
7.Difficile

Quale problema della scansione lineare viene ridotto principalmente dal doppio hashing?

  1. ALa necessità di memorizzare le chiavi nella tabella
  2. BL'agglomerazione primaria (primary clustering), cioè la formazione di lunghe sequenze di posizioni occupate
  3. CIl costo O(n) della lettura del valore di una chiave
  4. DLa necessità di una funzione hash
8.Difficile

Per ogni elemento di un array vuoi il successivo elemento maggiore alla sua destra, in tempo totale O(n). Quale struttura aiuta?

  1. AUn albero binario di ricerca ricostruito per ogni elemento
  2. BUna coda che contiene ogni coppia di elementi
  3. CUna tabella hash di tutti gli elementi
  4. DUna pila che conserva gli elementi in attesa della loro risposta

Soluzioni

  1. 1. C · Pila (stack)
  2. 2. B · La chiave di ogni genitore è maggiore o uguale alle chiavi dei suoi figli
  3. 3. B · Un nodo senza figli
  4. 4. A · Gli elementi dell'array sono contigui, quindi sfruttano bene la cache della CPU
  5. 5. A · Uno stack
  6. 6. D · A semplificare il codice eliminando i casi particolari in testa o in coda
  7. 7. B · L'agglomerazione primaria (primary clustering), cioè la formazione di lunghe sequenze di posizioni occupate
  8. 8. D · Una pila che conserva gli elementi in attesa della loro risposta

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