La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Rappresentazione di grafi

Presentazioni simili


Presentazione sul tema: "Rappresentazione di grafi"— Transcript della presentazione:

1 Rappresentazione di grafi
Liste di adiacenza Matrice di adiacenza Matrice di incidenza

2 Rappresentazione di grafi
Vi sono diversi modi per rappresentare un grafo G=(V,E): come una collezione di liste di incidenza o come una matrice di adiacenza o come una matrice di incidenza. Di solito si preferisce la rappresentazione con liste di adiacenza perché quando il grafo è sparso, |E| molto minore di |V|2, fornisce una rappresentazione compatta del grafo. Se invece il grafo è denso , |E| è vicino a |V|2, la matrice di adiacenza può essere preferita, perché è più rapido accedere all’informazione in essa contenuta. Per esempio sapere se due archi sono adiacenti.

3 Liste di adiacenza Consiste in un vettore Adj di |V| liste, una per ogni vertice di V. Per ogni u in V, la lista di adiacenza Adj[u] comprende tutti i gli archi (u,v) in E, con v in V e adiacente a u. La quantità di memoria necessaria è O(max(|V|,|E|)) = O(|V|+|E|). nodo adiacente next Grafo non orientato Adj[1,…,6] 1 2 1 2 3 6 --- 2 1 3 --- 3 3 1 2 4 --- 6 4 3 5 --- 5 4 6 --- 4 5 6 1 5 ---

4 Liste di adiacenza Se ci sono dei pesi sui vertici vengono memorizzati nel vettore Adj insieme al puntatore all’inizio della lista di adiacenza. Se c’è un peso w su un arco (u,v) viene memorizzato nel corrispettivo elemento della lista di adiacenza Adj[u]. nodo adiacente next Grafo orientato Adj[1,…,6] 1 2 1 2 3 --- 2 3 --- 3 3 --- 6 4 3 --- 5 4 6 --- 4 5 6 1 5 ---

5 Matrice di adiacenza Si assume che i vertici siano numerati 1, 2, …, |V| in modo arbitrario. La matrice di adiacenza consiste in una matrice A=(aij) di dimensione |V| x |V| tale che: 1 2 3 4 5 6 Grafo non orientato 1 1 1 2 2 A = 3 3 6 4 4 5 5 6

6 Matrice di adiacenza Nel caso di un grafo non orientato la matrice A risulta simmetrica, A=AT, ossia aij = (aij)T = aji. La matrice richiede memoria Θ(|V|2). E’ possibile anche memorizzare il peso di ogni arco nella rispettiva cella aij. 1 2 3 4 5 6 Grafo orientato 1 1 1 2 2 A = 3 3 6 4 4 5 5 6

7 Matrice di incidenza Si assume che i vertici siano numerati 1, 2, …, |V| in modo arbitrario. La matrice di adiacenza consiste in una matrice D=(dij) di dimensione |V| x |E| tale che: La matrice richiede memoria Θ(|V|x|E|). 1 2 3 4 5 6 7 8 -1 +1 Grafo orientato 1 2 1 8 1 2 D = 3 3 2 3 4 7 6 5 4 4 5 6 5 6


Scaricare ppt "Rappresentazione di grafi"

Presentazioni simili


Annunci Google