Sei sulla pagina 1di 1

Algoritmi e Principi dell'Informatica

Appello d’esame A - Parte algoritmi


14 gennaio 2019

NOTA: Scrivere il proprio nome su tutte le facciate dei fogli

Esercizio 1
Si calcoli la complessità del seguente frammento di codice:

Sum=0;
for (i = 1; i <= N/2; i*=2)
for (k = i; k <= N; k*=2)
for (j = i; j<=N; j*=2)
Sum++;

Esercizio 2
Dato un albero binario di n nodi si scriva una funzione C++ che conti quanti nodi si trovano
esattamente a metà (in termini di numero di archi da percorrere) tra la radice e la foglia più
profonda tra quelle raggiungibile dal nodo.

Esercizio 3
Si consideri un grafo orientato non pesato. Si descriva un algoritmo che restituisca il nodo che
ha il massimo numero di archi entranti/uscenti.

Esercizio 4
Data una tabella di hash con M=11 slot e le seguenti funzioni di hash
• h1(K) = K mod M
• h2(K) = {K mod (m-1)} + 1

Si inseriscano nell’ordine le chiavi {35, 44, 23, 33, 46, 18, 11, 24, 43} utilizzando la funzione di
a) linear probing con c=3;
b) quadratic probing;
c) double hashing.