Kruskal funziona, l'ho messo a posto ma non riesco a fare Dijkstra e quindi Prim. Ho scritto Dijkstra in questo modo:
codice:

public void dijkstra(String nodoS) {
	double[] dist = new double[dimStandard];
	for(int x = 0; x < ultimoNodi; x++) { //per ogni nodo
		dist[x] = INFINITO; 
		padre[x] = -1;
	}		
	Integer inodoS = mapNodi.get(nodoS);
	padre[inodoS] = inodoS; 
	dist[inodoS] = 0;
	CodaConPriorita coda = FabbricaCodaConPriorita.crea(dimStandard);
	for(int x = 0; x < ultimoNodi; x++) { //per ogni nodo 
		String j = arrayNodi[x].nome;
		coda.inserisci(j, dist[x]);
	}		
	while(!coda.eVuota()) {
		Nodo u = new Nodo(coda.estraiPrimo()); //estraggo il primo cioe' quello con distanza minima
		Integer iU = mapNodi.get(u);
		for(int v = 0; v < arrayNodi[iU].listeAd.size(); v++) { //for each(Nodo v adiacente a u)
			double cuv = pesoArco(u.nome, arrayNodi[v].nome); 
			if(dist[iU] + cuv < dist[v]) {
				padre[v] = iU; 
				dist[v] = dist[iU] + cuv;
				coda.cambiaPriorita(arrayNodi[v].nome, dist[v]); //decreasePriority(v, dist[v], coda);
			}
		} //end for
	} //end while
}

public double pesoArco(String arco1, String arco2) {
	for(int i = 0; i < ultimoArchi; i++) {
		String nome1 = arrayArchi[i].nodo1 + arrayArchi[i].nodo2;
		String nome2 = arrayArchi[i].nodo2 + arrayArchi[i].nodo1;
		if(arrayArchi[i].info.compareTo(nome1) == 0 || arrayArchi[i].info.compareTo(nome2) == 0)
			return arrayArchi[i].peso;
	}
	throw new IllegalArgumentException();
}
Ma non riesco a testarlo poichè il metodo pesoArco non funziona. Tale metodo dovrebbe cercare nell'array di archi quello con i due estremi chiamati arco1 e arco2 e restituire il peso di quest'arco.
Quando vado a provare questo singolo metodo mi da errore dicendo che non lo trova. Eppure è dichiarato pubblico ed è inserito nella mia interfaccia. Dov'è il problema?
Grazie