public int caminoMinimo(int o, int d) {
		int[] costo = new int[cantNodos + 1];
		int[] camino = new int[cantNodos + 1];
		boolean[] visitado = new boolean[cantNodos + 1];
		// Inicializo costos con valor INFINITO
		for (int i = 1; i <= cantNodos; i++) {
			if (i != o)
				costo[i] = Integer.MAX_VALUE;
		}

		for (int i = 1; i <= cantNodos; i++) {
			// vertice con la distancia mas corta no visitado
			int u = distanciaMasCorta(costo, visitado, o, d);
			visitado[u] = true;
			for (int j = 1; j <= cantNodos; j++) {
				if (this.sonAdyacentes(u, j) && !visitado[j]) {
					if (this.matrizAdyacencia[u][j].peso + costo[u] < costo[j]) {
						costo[j] = this.matrizAdyacencia[u][j].peso + costo[u];
						camino[j] = u;
					}
				}
			}
		}
		imprimirCaminosAux(o, d, camino);
		return costo[d];
	}