• Non ci sono risultati.

Spazio riservato alla correzione1 2 3.a 3.b4 Totale /4 /8 /4 /12 /4 /32

N/A
N/A
Protected

Academic year: 2021

Condividi "Spazio riservato alla correzione1 2 3.a 3.b4 Totale /4 /8 /4 /12 /4 /32"

Copied!
1
0
0

Testo completo

(1)

Laboratorio di Algoritmi e Strutture Dati Docente: A. Murano Prima prova intercoso 09 Maggio 2005

Laurea in Informatica Università degli Studi di Napoli “Federico II”

Nome e Cognome Numero di Matricola:

Spazio riservato alla correzione

1 2 3.a 3.b 4 Totale

/4 /8 /4 /12 /4 /32

Non utilizzate altri fogli, utilizzate soltanto lo spazio sottostante. Fogli differenti non saranno presi in considerazione per la correzione.

1.

Si consideri una coda di priorità per la gestione della coda di stampa di una rete implementata con una struttura dati heap H[MAX]. Si supponga di avere memorizzata la dimensione dell’heap in heapsize e di disporre delle seguenti funzioni:

a. void Heapify(int H[MAX], int el); \\ el è un indice del vettore H b. void BuildHeap(int H[MAX]);

c. void HeapSort(int H[MAX]);

d. int ricerca (int H[MAX], int el); \\ restituisce l’indice del vettore in cui si trova l’elemento el; e -1 se l’elemento non è presente nel vettore

Si implementi la funzioni void annulla_lavoro(int H[MAX], int el), che prende in

input l’heap H[MAX] e il lavoro el da eliminare ed elimina in lavoro el dall’heap

H[MAX]. Descrivere la complessità asintotica della funzione annulla_lavoro.

(2)

2.

Si consideri uno Stack S, implementato con array S[MAX]. Si implementi la funzione void

togli_da_Stack(int S[MAX], int el) che elimina dallo stack S tutti gli elementi uguali ad

el lasciando invariato l’ordine degli altri elementi. La funzione può utilizzare come

struttura ausiliaria un altro stack e nessun altro tipo di struttura dati. Si ricorda che lo stack

è una struttura dati che permette l’accesso ai suoi dati solo dal top.

(3)

3.

Si consideri una lista di numeri interi Lista implementata come lista doppiamente puntata non circolare implementata utilizzando la seguente struttura

struct elemento {

struct elemento *prev;

int inf;

struct elemento *next;}

struct elemento *Lista;

a. si implementi la funzione ricorsiva void Stampa_reverse(struct elemento *Lista) che ricorsivamente stampa il riverse della lista.

b. Si implementi la funzione void togli_ripetizioni (struct elemento *Lista) che elimina dalla lista Lista tutte le ripetizioni di elementi senza usare strutture dati aggiuntive e senza cambiare l’ordine degli elementi.

Esempio, sia Lista uguale a 1316332, la funzione void

togli_ripetizioni deve trasformare la lista Lista in 1362.

(4)

4.

Facoltativo: Dati due alberi binari di ricerca T1 e T2 entrambi implementati con la seguente struttura a puntatori:

struct nodo {

int inforadice;

struct nodo *left;

struct nodo *right;}

struct nodo *T1, *T2;

implementare una funzione efficiente che inserisca tutti gli elementi di T1 in T2. L’albero

T2 risultante deve preservare la proprietà di albero binario di ricerca.

Riferimenti

Documenti correlati

• This means that it is possible to define parametric

Si consideri una lista di numeri interi Lista implementata come lista doppiamente puntata non circolare implementata utilizzando la seguente struttura.. struct

Supponendo che la rete di n stazioni e m collegamenti sia rappresentata da un grafo non orientato utilizzando una rappresentazione con liste di adiacenza come

Sia G un grafo orientato non pesato di n vertici 0,1,…, n-1 rappresentato con liste di adiacenza utilizzando la struttura dati graph presentata nell’esercizio precedente, scrivere

implementare una funzione in linguaggio C in_grafo che trasforma l’albero in grafo utilizzando una rappresentazione con matrice di adiacenza. Descrivere

Non abbiamo quindi modo di modificare le chiavi degli elementi della lista in modo da essere sicuri di riconoscere gli elementi su cui si ` e gi` a passati.. Proviamo dunque

(a) Esibire una relazione su di X, che sia riflessiva, simmetrica, ma non transitiva.. (b) Esibire una relazione su di X, che sia simmetrica, transitiva ma

Domanda [openquestbasiB] Dare la definizione di lista di vettori linearmente indipendenti in uno spazio vettoriale V... Domanda [openquestbasiC] Dare la definizione di lista