Código Java:
Ver original
public class TodoCaminoMinimo { private int n; // número de vértices private int [n][n] pesos; private int [n][n] traza; private int [n][n] d; public void todosCaminosMinimo() { // matriz inicial es la de pesos. for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { d[i][j] = pesos[i][j]; traza[i][j] = -1; // indica que camino mas corto es el arco } // Camino mínimo de un vértice a si mismo: 0 for (int i = 0; i < n; i++) d[i][i] = 0; for (int k = 0; k < n; k++) for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) if ((d[i][k] + d[k][j]) < d[i][j]) // nuevo mínimo { d[i][j] = d[i][k] + d[k][j]; traza[i][j]= k; } } }