Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorico-Pratica

Matrice di Adiacenza

Struttura dati tabellare bidimensionale per la rappresentazione algebrica dei grafi, analisi delle prestazioni e dei costi di memoria.

1. Cos'è la Matrice di Adiacenza?

La matrice di adiacenza è una rappresentazione basata su una tabella bidimensionale (array 2D) di dimensione $V \times V$, dove $V$ è il numero di vertici del grafo. Ciascuna riga $i$ e colonna $j$ corrisponde a un vertice.

L'elemento alla posizione $M[i][j]$ assume valori specifici in base alle caratteristiche del grafo:

Esempio Pratico di Tabella

Consideriamo un grafo non orientato con 4 nodi ($0, 1, 2, 3$) e archi tra $(0,1), (0,2), (1,3), (2,3)$:

0 1 2 3
0 0 1 1 0
1 1 0 0 1
2 1 0 0 1
3 0 1 1 0

2. Vantaggi, Svantaggi e Complessità

L'utilizzo della matrice di adiacenza offre compromessi ben definiti in termini di efficienza computazionale:

// Implementazione base di una Matrice di Adiacenza in C++ #include <vector> #include <iostream> class AdjacencyMatrixGraph { int V; std::vector<std::vector<int>> matrix; public: AdjacencyMatrixGraph(int v) : V(v), matrix(v, std::vector<int>(v, 0)) {} void addEdge(int u, int v, int weight = 1) { matrix[u][v] = weight; matrix[v][u] = weight; // Solo se non orientato } };

3. Simulatore Interattivo: Generazione Matrice $V \times V$

Inserisci il numero di vertici del grafo per calcolare la dimensione strutturale e l'occupazione teorica di memoria della matrice.

matrix-engine@nexus-core:~# Adjacency Matrix Calculator
> Inserisci il numero di vertici e avvia il calcolo dei parametri di memorizzazione.