1.Facile
Una tabella hash memorizza i dati come:
- ACoppie chiave–valore individuate da una funzione hash
- BUna stringa di lunghezza fissa
- CUn albero con chiavi ordinate
- DSolo una lista ordinata
2.Facile
In un grafo, che cos'è un ciclo?
- AUn cammino che inizia e finisce nello stesso vertice
- BUn arco di peso zero
- CUn cammino che visita ogni vertice
- DUn vertice senza archi
3.Facile
Come si chiama l'operazione di una coda (queue) che rimuove l'elemento in testa?
- APush
- BEnqueue
- CInsert
- DDequeue
4.Media
Qual è il costo di inserire un elemento al centro di un array di n elementi?
- AO(1), perché l'indice è noto
- BO(n²), perché ogni elemento si sposta n volte
- CO(log n), per via della ricerca binaria
- DO(n), perché gli elementi successivi devono essere spostati
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 preordine?
- A1 2 4 5 3
- B4 2 5 1 3
- C1 2 3 4 5
- D4 5 2 3 1
6.Media
Quale metodo di risoluzione delle collisioni memorizza le chiavi in collisione in una lista nello stesso bucket?
- AScansione lineare (linear probing)
- BScansione quadratica (quadratic probing)
- CConcatenamento separato (separate chaining)
- DDoppio hashing (double hashing)
7.Difficile
La struttura union-find (insiemi disgiunti) con unione per rango e compressione dei cammini ha un costo ammortizzato per operazione di:
- AO(n)
- BEsattamente O(log n)
- CO(n²)
- DO(α(n)), l'inversa della funzione di Ackermann, praticamente costante
8.Difficile
In un buffer circolare, front == rear può significare sia vuoto sia pieno. Qual è un modo comune per distinguere i due casi?
- AMemorizzare front e rear nella stessa variabile
- BSvuotare sempre il buffer ogni volta che front è uguale a rear, così lo stato è vuoto
- CRendere la dimensione del buffer una potenza di due
- DMantenere un contatore separato degli elementi, oppure lasciare sempre una posizione inutilizzata
Soluzioni
- 1. A · Coppie chiave–valore individuate da una funzione hash
- 2. A · Un cammino che inizia e finisce nello stesso vertice
- 3. D · Dequeue
- 4. D · O(n), perché gli elementi successivi devono essere spostati
- 5. A · 1 2 4 5 3
- 6. C · Concatenamento separato (separate chaining)
- 7. D · O(α(n)), l'inversa della funzione di Ackermann, praticamente costante
- 8. D · Mantenere un contatore separato degli elementi, oppure lasciare sempre una posizione inutilizzata
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.