• Non ci sono risultati.

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
1
0
0

Testo completo

(1)

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

(compito A – prima parte)

PRIMA PARTE

A.A.1

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

<7, 1, 4, 3, 8, 11, 2>

A.A.2

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

<7, 1, 4, 3, 8, 11, 2>

A.A.3

Date le seguenti dichiarazioni per la realizzazione di un albero binario, struct nodo {

int info;

struct nodo *left;

struct nodo *right;

};

struct nodo *root;

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 dell’elemento da cancellare). Si indichino inoltre quali parametri devono essere passati alla funzione visita e quali valori devono essere restituiti da essa.

A.A.4

Si consideri una coda implementata tramite una lista circolare come in figura

a partire dalla struttura elementare

struct elem { int info;

struct elem* next;

};

Si scrivano le funzioni insert(struct elem*) e delete(int key) per l’inserimento e la rimozione di un elemento.

A.B.1

Dato un albero n-ario definito con le seguenti dichiarazioni, struct nodo {

int info;

struct nodo ** sons;

int numsons;

};

struct nodo *root;

si scriva un programma che elimini dall’albero tutte le ripetizioni, lasciando un solo nodo per ogni chiave ripetuta [si utilizzi la funzione delete dell’esercizio A.A.3 per la cancellazione di un nodo da un albero].

A.C.1

Si descriva la tecnica di realizzazione di un dizionario tramite tabelle ad accesso diretto.

15 10 7 21

head tail

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)

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