Concetti Chiave

  • L'ADT grafo è una struttura dinamica utilizzata per interrelazionare nodi attraverso legami orientati o non orientati.
  • Gli archi di un grafo possono avere un orientamento e un peso, rappresentando il costo per la percorrenza dell'arco.
  • I grafi con archi pesati sono un sottoinsieme all'interno dello spazio di tutti i grafi.
  • La lista di adiacenza rappresenta i vertici raggiungibili da ciascun nodo tramite puntatori, inclusi i pesi degli archi.
  • La matrice di adiacenza è una matrice NxN che indica l'esistenza di collegamenti tra i vertici, usando valori 1, 0 o il peso degli archi.

L’ADT grafo è una struttura dati complessa e dinamica, viene di solito implementata come ADT di prima categoria. Il grafo viene utilizzato in tutti quei casi in cui bisogna inter-relazionare tra di loro diversi nodi o elementi, non con un solo altro nodo ma anche con più di uno, creando così dei legami tra i nodi che possono essere orientati e quindi con uno specifico verso di percorrenza o non orientati e quindi ogni legame (che viene chiamato arco) può essere percorso in entrambi i versi di percorrenza.

Caratteristiche degli archi

Gli archi in un grafo oltre a poter avere una caratteristica di orientamento, di verso, possono presentare un peso, inteso come valore numerico, anche indicato come costo per la percorrenza dell’arco cui è riferito. I grafi con archi pesati sono un sottoinsieme dello spazio di tutti i grafi.
La rappresentazione degli archi del grafo può essere fatta in due differenti modi in base alla struttura del grafo stesso:

  • Lista di adiacenza: la lista di adiacenza è un vettore dinamico di puntatori ai primi nodi di n liste (n è il numero di vertici o nodi del grafo); per ogni vertice viene quindi creata una lista contenente tutti i vertici raggiungibili da quello di riferimento (nel caso di archi pesati ogni nodo della lista contiene anche il peso di quell’arco).
  • Matrice di adiacenza: la matrice di adiacenza è una matrice allocata dinamicamente di dimensione NxN (N è il numero dei vertici del grafo) con ogni cella indicante se esiste il collegamento tra quel vertice ed un altro, se gli archi non sono pesati 1 per arco esistente e 0 per non esistente, se gli archi sono pesati 0 per arco non esistente e il peso dell’arco se esistente.

Domande da interrogazione

  1. Qual è la principale funzione di un grafo nell'interrelazione tra nodi?
  2. Un grafo è utilizzato per inter-relazionare diversi nodi o elementi, creando legami che possono essere orientati o non orientati, permettendo così percorsi in una o entrambe le direzioni (come indicato nel testo).

  3. Quali sono le caratteristiche degli archi in un grafo?
  4. Gli archi possono avere un orientamento e un peso, che rappresenta un valore numerico o costo per la percorrenza dell'arco. I grafi con archi pesati costituiscono un sottoinsieme di tutti i grafi (come descritto nel testo).

  5. Quali sono i due modi principali per rappresentare gli archi di un grafo?
  6. Gli archi di un grafo possono essere rappresentati tramite una lista di adiacenza, che utilizza un vettore dinamico di puntatori, o tramite una matrice di adiacenza, che è una matrice NxN che indica l'esistenza di collegamenti tra i vertici (come spiegato nel testo).

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community