View Full Version : [JAVA] implementazione grafi con matrice delle adiacenze
ciao!
ho dei problemi a capire l'argomento nel titolo.
avete del materiale utile per aiutarmi a capirlo???
Grazie :)
Don[ITA]
27-02-2011, 23:45
Cosa non ti è chiaro di preciso?
ciao.
la cosa che non mi è chiara i particolar modo è questa:
quando io implemento il grafo con la lista delle adiacenze lo implemento attraverso l'uso di HashMap<Vertex<V>,List<Edge<E>>> graph, quindi tratto i vertici e i lati del grafo come oggetti della classe Vertex ed Edge che mi creo.
Nel caso della matrice delle adiacenze non so come devo rappresentare i vertici e i lati del grafo, se come interi o come oggetti della classe Vertex ed Edge oppure come qualcos'altro.
una cosa del genere potrebbe andare bene secondo te???
public class Graph{
public int [][] matrice;
public int vertice;
public int nodo;
public Graph(int vertice, int nodo){
this.vertice=vertice;
this.nodo=nodo;
matrice=new int[vertice][vertice];
}
}
se invece volessi rappresentare i vertici e i lati con delle classi (come nel caso della lista delle adiacenze) come dovrei fare?
grazie in anticipo :)
Don[ITA]
28-02-2011, 09:41
Beh, la matrice di adiacenza ti dice solo se due nodi sono connessi da un arco, o il peso di quell'arco. Detto ciò puoi sempre usare delle classi costruite ad hoc per rappresentare archi e nodi del grafo in un modo simile a questo:
private int matrice[][];
private List<Node> nodi;
private List<Edge> archi;
public Grafo(List<Node> nodi, List<Edge> archi) {
this.nodi = nodi;
this.archi = archi;
matrice = new int[nodi.size()][nodi.size()];
(...popola matrice...)
}
Volendo puoi usare contenitori diversi da int[][] per rappresentare la matrice, e fare in modo che i tuoi nodi diventino le chiavi della matrice stessa, ad esempio:
HashMap<Node, HashMap<Node, Integer>>
ma credo che complichi solo le cose :D
Spero di esserti stato utile
grazie mille per il tuo aiuto!
:)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.