• Non ci sono risultati.

Laboratorio di Algoritmi e Strutture Dati ESAME FINALE 12/12/2001 (Compito B – seconda parte) SECONDA PARTE B.2.1

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio di Algoritmi e Strutture Dati ESAME FINALE 12/12/2001 (Compito B – seconda parte) SECONDA PARTE B.2.1"

Copied!
1
0
0

Testo completo

(1)

Laboratorio di Algoritmi e Strutture Dati ESAME FINALE 12/12/2001

(Compito B – seconda parte)

SECONDA PARTE

B.2.1

In un grafo G=(V,E) un insieme stabile è un sottoinsieme S ⊆ V(G) completamente sconnesso, cioè per il quale non esiste l’arco (u,v ) ∈ E(G), per ogni u ,v∈S. Un insieme stabile è detto massimale se non è contenuto in nessun altro insieme stabile (non è necessariamente il massimo). Dato un grafo rappresentato con una matrice di adiacenza A (n x n), utilizzando il tipo di dati astratto Insiemi Disgiunti si costruisca una partizione di G in insiemi stabili in modo da avere almeno un insieme stabile massimale. [suggerimento: a partire da insiemi stabili contenenti un solo elemento,

confrontare due insiemi A e B e unirli solo se non hanno elementi adiacenti tra loro].

B.2.2

Si disegni, a partire da un albero vuoto, l’albero binario di ricerca che si ottiene dopo ognuna delle seguenti sequenze di inserimenti (add) e cancellazioni (remove):

add <6, 4, 1, 7, 9, 5>

remove <6, 4, 7>.

B.2.3

Si descriva la complessità computazionale della funzione InsertFixUp per gli alberi Red-Black, e i motivi che inducono a usarla.

B.2.4

Si mostri che la funzione di Ackermann è superesponenziale

.

Riferimenti

Documenti correlati

C.2.2 Si disegni l’albero binario di ricerca che si ottiene, a partire da un albero vuoto, dopo ognuna delle seguenti sequenze di inserimenti (add) e cancellazioni (remove) :.

Ad esempio, la fusione delle due comitive “fan della sabbia” (in cui sono presenti Mario, Pino e Aldo) e “fan del mare chiaro ” (Giuseppe e Vinicio) dà luogo alla

L’algoritmo effettua una divisione del tempo in intevalli di uguale ampiezza, e verifica in ogni intervallo la priorità associata a ogni processo, quindi sceglie quello più

Si supponga inoltre definita come globale la variabile struct node* root; scrivere una funzione int height(struct node * root) che calcoli l’altezza dell’albero;.. A.B.2)

Si supponga inoltre definita globale la variabile struct nodo* root; Scrivere una funzione int max_occur() che, eseguendo una ricerca in ampiezza, trovi il numero più

C.B.1) Sia definito globale un array int A[n]; si scriva una funzione void insertion_sort(…) ricorsiva che ordini in modo crescente gli elementi di A [SUGGERIMENTO: per ordinare

si descriva in linguaggio C l’implementazione dell’operazione di cancellazione di un elemento dall’albero puntato da root (si consideri data l’operazione visita per la ricerca

Solo quando uno di essi è trovato libero, si procede con l’estrazione dalla coda del prossimo paziente, e la sua assegnazione all’ambulatorio libero].. B.C.1 Si discutano i