• Non ci sono risultati.

2 Luglio 2005Laurea in InformaticaUniversità degli Studi di Napoli “Federico II”

N/A
N/A
Protected

Academic year: 2021

Condividi "2 Luglio 2005Laurea in InformaticaUniversità degli Studi di Napoli “Federico II”"

Copied!
1
0
0

Testo completo

(1)

Laboratorio di Algoritmi e Strutture Dati - Modulo B Docente: A. Murano

2 Luglio 2005

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

Nome e Cognome Numero di Matricola:

Spazio riservato alla correzione

1 2 3 4 Totale

/8 /8 /8 /8 /32

Non utilizzate altri fogli. Utilizzate soltanto lo spazio sottostante. Fogli differenti non saranno presi in considerazione per la correzione. Non scrivere a matita.

1. Sia G un grafo orientato pesato di n vertici 0,1,…, n-1 e H un grafo orientato pesato di m vertici 0,1,…, m-1, entrambi rappresentati con liste di adiacenza utilizzando la seguente struttura:

typedef struct graph {

int nv;

edge **adj; } graph;

graph *G, *H;

typedef struct edge { int key;

int peso;

struct edge *next; } edge;

scrivere in linguaggio C una funzione che restituisca un nuovo grafo T Unione dei due

grafi G e H, rappresentato con liste di adiacenza, secondo la struttura dati graph

definita sopra. In pratica, T avrà tutti i vertici di G e H e conterrà un arco da un nodo i a un

nodo j se e solo se tale arco è presente in G oppure in H. Il peso di ogni arco in T è dato

dalla somma dei pesi dello stesso arco in G e H. Descrivere la complessità asintotica della

funzione implementata.

(2)

2. Sia G un grafo orientato pesato di n vertici 0,1,…, n-1 rappresentato con matrice di

adiacenza scrivere in linguaggio C una funzione che restituisca un nuovo grafo T,

trasposto del grafo G, rappresentato con liste di adiacenza utilizzando la struttura dati

graph definita nel primo esercizio. In pratica, T conterrà un arco (u,v) con peso p, se e

solo se G contiene un arco (v,u), con peso p. Descrivere la complessità asintotica della

funzione implementata.

(3)

3. Sia G un grafo orientato pesato di n vertici 0,1,…, n-1 rappresentato con liste di adiacenza

utilizzando la struttura graph definita nell’esercizio 1, scrivere in linguaggio C una

funzione che calcoli se il grafo ha almeno due vertici che hanno lo stesso insieme di nodi

incidenti. Descrivere la complessità asintotica della funzione implementata.

(4)

4. Sia G un grafo orientato pesato di n vertici 0,1,…, n-1 rappresentato con liste di adiacenza

utilizzando la struttura graph definita nell’esercizio 1, scrivere in linguaggio C una

funzione che preso in input il grafo G, cancella l’arco con peso minimo (se ci sono più

archi con peso minimo, se ne cancelli solo uno). Descrivere la complessità asintotica della

funzione implementata.

Riferimenti

Documenti correlati

[r]

liste di adiacenza: una lista di tutti i nodi e, per ciascuno di essi, una lista dei nodi

3) Scrivere un algoritmo di verifica per il problema di decidere se un grafo di n vertici, rappresentato con una matrice binaria M, contiene una clique di k

[r]

[r]

Tenendo conto del concetto di rapporto, dedurre dal suddetto teorema (e soltanto dal suddetto teorema) che il modulo del rapporto di due numeri complessi ` e il rapporto dei moduli

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

a) implementare una funzione in linguaggio C che presi in input i due alberi T1 e T2 controlli che essi siano uguali. Descrivere la complessità asintotica della