1.Facile
Che cosa memorizza una mappa (dizionario)?
- ASolo valori in ordine di inserimento
- BCoppie di chiavi uguali
- CValori ordinati per grandezza
- DCoppie chiave–valore con chiavi univoche
2.Facile
In una lista concatenata semplice, che cosa contiene il puntatore al successivo dell'ultimo nodo?
- AL'indirizzo del nodo precedente
- BNull (nessun nodo)
- CIl numero di nodi della lista
- DL'indirizzo del primo nodo
3.Facile
Quale struttura dati è più adatta per la funzione «annulla» (undo) di un editor di testo?
- AGrafo
- BPila (stack)
- CInsieme hash (hash set)
- DCoda (queue)
4.Media
Hai un riferimento a un nodo a metà di una lista. In quale lista puoi rimuoverlo in O(1)?
- AUna lista doppiamente concatenata
- BUn array dinamico
- CUn array ordinato
- DUna lista concatenata semplice
5.Media
Perché in pratica percorrere un array è spesso molto più veloce che percorrere una lista concatenata della stessa lunghezza?
- ALe liste concatenate memorizzano sempre gli elementi su disco
- BLa visita di un array è O(1) in totale, mentre quella di una lista concatenata è O(n)
- CGli elementi dell'array sono contigui, quindi sfruttano bene la cache della CPU
- DGli array usano meno istruzioni per confrontare i valori
6.Media
A che cosa serve un nodo sentinella (fittizio) in una lista concatenata?
- AA impedire che la lista cresca oltre un numero massimo fisso di nodi
- BA rendere la lista ordinata
- CA semplificare il codice eliminando i casi particolari in testa o in coda
- DA memorizzare il numero di elementi
7.Difficile
Nell'ipotesi di hashing uniforme semplice, qual è il tempo atteso di una ricerca in una tabella hash con concatenamento, n chiavi e m bucket?
- AO(log n)
- BO(m)
- CO(n)
- DO(1 + α), dove α = n / m
8.Difficile
Nell'algoritmo di Kruskal per l'albero ricoprente minimo, a che cosa serve la struttura union-find?
- AA ordinare gli archi per peso
- BA scegliere il vertice di partenza
- CA memorizzare la distanza corrente di ogni vertice dalla sorgente durante la visita
- DA verificare se i due estremi di un arco sono già collegati
Soluzioni
- 1. D · Coppie chiave–valore con chiavi univoche
- 2. B · Null (nessun nodo)
- 3. B · Pila (stack)
- 4. A · Una lista doppiamente concatenata
- 5. C · Gli elementi dell'array sono contigui, quindi sfruttano bene la cache della CPU
- 6. C · A semplificare il codice eliminando i casi particolari in testa o in coda
- 7. D · O(1 + α), dove α = n / m
- 8. D · A verificare se i due estremi di un arco sono già collegati
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.