Ho implementato un grafo tramite la sua matrice di adiacenza e un vettore con i nomi dei nodi in questo modo:
devo realizzare un metodo che dato il nome del nodo del grafo mi restituisca l'indice corrispondente in modo da sapere quale colonna prendere.codice:public class Grafo { public double [][] matrice = new double[0][0]; // è la matrice di adiacenza del nodo public String [] nodi = new String[0]; // è il vettoe con i nomi dei nodi del grafo /** * Costruisce un grafo rappresentato da una matrice che contine * matrice di adiacenza e nell'ultima colonna i nomi dei ndi * @param matrice_adiacenza matrice di adiacenza del grafo * @param nomi vettore con i nomi dei nodi del grafo */ public Grafo(double [][] matrice_adiacenza, String[] nomi) { matrice = matrice_adiacenza; nodi=nomi; } }
Consultando la documentazione ho elaborato questi due metodi ma entrambi non funzionano, o entra dentro il ciclo while oppure se ci entra mi da overflow del vettore
METODO1
METODO2codice:/** * Restituisce l'indice del nodo cercato * @param nodo di cui vogliamo sapere l'indice * @return posizione (indice) del nodo nel vettore */ public int getInt(String nodo) { int posizione=0; int flag = nodo.compareTo(nodi[posizione]); while(flag != 0) //ricerco la posizione "numerica" nel vettore dei nodi { posizione++; flag = nodo.compareTo(nodi[posizione]); } return posizione; }
no so come fare ed è un metodo a cui non posso rinunciare...codice:/** * Restituisce l'indice del nodo cercato * @param nodo di cui vogliamo sapere l'indice * @return posizione (indice) del nodo nel vettore */ public int getInt(String nodo) { int posizione=0; while(!nodi[posizione].equals(nodo)) //ricerco la posizione "numerica" nel vettore posizione++; return posizione; }
Aspetto vostri consigli/correzioni e vi ringrazio in anticipo![]()
![]()
![]()