int *distancias( int A[][6], int c)
{
int *d, j;
int fila[6], ini, fim;
d = mallocc( 6 * sizeof (int));
for (j = 0; j < 6; j = j+1) d[j] = 6;
d[c] = 0;
ini = 0; fim = 1; fila[0] = c;
while (ini != fim) {
int i, di;
i = fila[ini];
ini = ini + 1;
di = d[i];
for (j = 0; j < 6; j = j+1)
if (A[i][j] == 1 && d[j] >= 6) {
d[j] = di + 1;
fila[fim] = j;
fim = fim + 1;
}
}
return d;
}
Escrito com "++", o código ficaria ligeiramente mais eficiente.