• Non ci sono risultati.

ESERCIZI (da temi d’esame)

N/A
N/A
Protected

Academic year: 2021

Condividi "ESERCIZI (da temi d’esame)"

Copied!
1
0
0

Testo completo

(1)

ESERCIZI (da temi d’esame)

Esercizio 1.

Si consideri un array S di n chiavi intere.

• Si dia il codice di un algoritmo che con un’unica scansione di S conti il numero r di chiavi distinte in S.

Usare un dizionario D inizialmente vuoto (non interessa l’implementazione di D).

• Facendo l’assunzione che D sia implementato come un array ordinato, si analizzi la complessit`a in funzione di n e del numero r di chiavi distinte.

Esercizio 2.

Sia dato un array S di n interi di valore non limitato, ma che possono assumere solo blog nc valori distinti:

Esempio: S = h349; 12; 12; 102; 349; 12; 102; 102i

Progettare un algoritmo di ordinamento che operi in tempo minore di O(n log n). Spiegare dettagliatamente l’analisi della complessit`a.

Esercizio 3.

Sia T un albero binario di ricerca che implementa un dizionario. Sia v un nodo di T , e sia Tv il sottoalbero con radice v.

• Si progetti un algoritmo efficiente countLE(v, k) che, ricevuto in input un nodo v ∈ T e una chiave k restituisca il numero di elementi in Tv con chiave minore o uguale a k.

• Analizzare la complessit`a dell’algoritmo.

Esercizio 4.

Un albero binario proprio `e un albero in cui ogni nodo interno ha esattamente due figli. Sia T un albero binario proprio. Dato un nodo v ∈ T si definisca imbalance(v) la differenza in valore assoluto tra il numero di foglie nei sottoalberi sinistro e destro di v (se v `e una foglia imbalance(v)=0). Si definisca anche imbalance(T )

= maxv∈T imbalance(v).

• Dimostrare un limite superiore all’imbalance di un albero binario proprio con n nodi, e descrivere un albero il cui imbalance raggiunge tale limite.

• Disegnare un albero binario proprio T in cui imbalance(T ) = imbalance(v) e v non `e la radice dellalbero.

• Si progetti un algoritmo efficiente per determinare imbalance(T ) e analizzarne la complessit`a in tempo.

Esercizio 5.

Dato un albero binario T , una catena sinistra di T `e una sequenza di r nodi (r ≥ 1) legati uno all’altro dal puntatore sinistro. Una catena massimale sinistra `e una catena che non `e contenuta in nessun’altra catena sinistra. Detto LT il numero di catene massimali sinistre

1. Indicare le catene massimali su un albero binario completamente bilanciato di altezza 4.

2. Dimostrare che se T `e completamente bilanciato e ha n = 2k− 1 nodi, LT = 2k−1.

3. Si definisca un algoritmo efficiente che calcoli il numero di catene massimali sinistre LT per un qualsiasi albero binario T .

Riferimenti

Documenti correlati

i.life A - lavamani 40 cm & semicolonna Ceraplan - miscelatore lavabo i.life A - vaso sospeso & sedile Solea M2 - placca di comando - bianca.. Le dimensioni della stanza

Qualora il partecipante intenda recedere dal contratto, al di fuori dell’ipotesi precedente, avrà diritto al rimborso della somma versata al netto della quota di iscrizione,

La classe della lista deve avere un metodo void push(float) per aggiungere un nuovo oggetto alla fine lista, e un metodo float pop() che restituisca il primo elemento della lista e

b) se tali rapporti siano intercorsi o intercorrano con soggetti che abbiano interessi in attivita' o decisioni inerenti all'ufficio, limitatamente alle pratiche a lui affidate.

Le premesse costituiscono a tutti gli effetti parte integrante ed essenzia- le del presente contratto. 1 Oggetto dell’affidamento e importo contrattuale – L’Ordine

2 vo di spesa da parte dell’operatore economico e dell’ordine da parte della Stazione Appaltante, verranno applica- ti i prezzi dei listini delle case produttrici

La sua serie di quadri di ninfee è il suo modo di mettersi alla prova come artista, costringendosi a guardare, ed è la cosa più difficile per un artista che più invecchia e più pensa

Di inviare copia del presente provvedimento, per i seguiti di competenza, alla Direzione Medica Ospedaliera, al Direttore del Dipartimento di Chirurgia, al Direttore UOC