Вы можете поместить весь свой код, который повторяется, в рекурсивный метод.Важно, чтобы этот метод имел необходимые параметры, чтобы отслеживать глубину, а также значения, которые установлены вне повторяющейся части вашего кода (например, i
).
static void recursiveFunction(int distance, int matrix[][], int size, int row, int prevRow, int depth) {
for (int i = 0; i < size; i++) {
if ((adjMatrix[prevRow][i] == 1) && (matrix[row][i] > depth || matrix[row][i] == 0)
&& row != i) {
matrix[row][i] = depth;
if (depth < distance) {
recursiveFunction(distance, matrix, size , row, i, depth +1);
}
}
}
}
static void distanceMatrix(int distance, int result[][], int size) {
for (int i = 0; i < size; i++) {
recursiveFunction(distance, result, size, i, i, 1);
}
}
Пожалуйстаизвините за несотворные имена для функции и параметров.