• Non ci sono risultati.

Laboratorio di Algoritmi e Strutture Dati ESAME FINALE 12/12/2001 (Compito C – prima parte) PRIMA PARTE C.A.1

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio di Algoritmi e Strutture Dati ESAME FINALE 12/12/2001 (Compito C – prima parte) PRIMA PARTE C.A.1"

Copied!
1
0
0

Testo completo

(1)

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

(Compito C – prima parte)

PRIMA PARTE

C.A.1

Si descriva il funzionamento dell’algoritmo heap_sort applicando l’algoritmo alla sequenza

:

<1, 8, 2, 5, 11, 13, 4>

C.A.2

Si descriva il funzionamento dell’algoritmo insertion_sort applicando l’algoritmo alla sequenza:

<1, 8, 2, 5, 11, 13, 4>

C.A.3

La rappresentazione “figlio-sinistro, fratello-destro” di un albero n-ario prevede che ogni nodo sia collagato come in figura:

Si descriva una procedura di vista dell’albero in ampiezza.

C.A.4

Si discuta come va modificata la funzione BuildHeap per la costruzione di un maxheap nel caso in cui la coda di priorità sia implementata con un array e sia memorizzata nelle posizioni comprese tra i due indici head e tail, come nella figura seguente

:

C.B.1

Sia dato un albero n-ario per la rappresentazione dell’albero genealogico di una data persona, definito dalla seguente struttura:

struct nodo { char* nome;

struct nodo ** sons;

int numsons;

};

struct nodo *ancestor;

Si realizzi un programma che determini il tasso di proliferazione media della stirpe (cioè, il numero medio dei figli per ogni genitore), e stampi i nominativi delle persone che presentano un tasso superiore alla media

.

C.C.1

Si discutano i vantaggi dell’uso di funzioni hash universali, e si illustri una possibile implementazione per realizzare una classe di tali funzioni

.

Riferimenti

Documenti correlati

A.2.1) Una foresta in un grafo è un suo sottografo che non presenta cicli. Una foresta ricoprente è una foresta che contiene tutti i nodi del grafo. In generale, una foresta non

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

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)

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