1.Facile
Qual è la differenza principale tra un array statico e un array dinamico?
- AUn array dinamico memorizza gli elementi in nodi collegati così può crescere un elemento alla volta
- BUn array statico permette un accesso per indice più lento
- CUn array dinamico può crescere spostandosi in un blocco di memoria più grande
- DUn array statico può memorizzare solo numeri
2.Facile
Come si chiama l'operazione di una coda (queue) che rimuove l'elemento in testa?
- AInsert
- BDequeue
- CEnqueue
- DPush
3.Facile
Che cos'è la proprietà di max-heap?
- ALe chiavi sono ordinate da sinistra a destra
- BTutte le foglie contengono la chiave massima
- CLa chiave di ogni figlio sinistro è maggiore o uguale a quella del fratello destro
- DLa chiave di ogni genitore è maggiore o uguale alle chiavi dei suoi figli
4.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)
5.Media
Qual è il costo di inserire un elemento al centro di un array di n elementi?
- AO(n²), perché ogni elemento si sposta n volte
- BO(log n), per via della ricerca binaria
- CO(1), perché l'indice è noto
- DO(n), perché gli elementi successivi devono essere spostati
6.Media
Qual è l'altezza nel caso peggiore di un albero binario di ricerca con n nodi se le chiavi vengono inserite in ordine?
- A√n
- Bn (diventa una lista concatenata)
- Clog₂ n
- D1
7.Difficile
L'eliminazione di un nodo con due figli da un albero binario di ricerca avviene di solito:
- AScambiandolo con la radice
- BSostituendolo con il suo successore in ordine (o predecessore) ed eliminando quel nodo
- CRimuovendo l'intero sottoalbero
- DRicostruendo da zero il sottoalbero sottostante e reinserendo tutte le chiavi che conteneva
8.Difficile
Inserendo una chiave in un albero AVL il sottoalbero sinistro di un nodo diventa troppo alto, e la nuova chiave è finita nel sottoalbero sinistro del suo figlio sinistro (caso sinistra-sinistra). Quale correzione si applica?
- AUna singola rotazione a destra sul nodo sbilanciato
- BLa ricolorazione del nodo e del figlio
- CUna rotazione a sinistra sul figlio, poi una rotazione a destra sul nodo
- DUna singola rotazione a sinistra sul nodo sbilanciato
Soluzioni
- 1. C · Un array dinamico può crescere spostandosi in un blocco di memoria più grande
- 2. B · Dequeue
- 3. D · La chiave di ogni genitore è maggiore o uguale alle chiavi dei suoi figli
- 4. C · Concatenamento separato (separate chaining)
- 5. D · O(n), perché gli elementi successivi devono essere spostati
- 6. B · n (diventa una lista concatenata)
- 7. B · Sostituendolo con il suo successore in ordine (o predecessore) ed eliminando quel nodo
- 8. A · Una singola rotazione a destra sul nodo sbilanciato
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.