Итак, я пытаюсь выяснить, как полностью выйти из рекурсивной функции в C ++.
В примере у меня есть двумерный массив, который содержит необходимую информацию, которая является правильной.В случае отсутствия рекурсии все работает как положено - часть, которая возвращает time[start]
, выходит из функции.
В случае рекурсии, return
выходит из текущей рекурсии, но сама функцияпродолжает повторять каждый следующий i
из цикла for
.Я бы хотел, чтобы функция остановилась в этой точке.
Есть ли способ выйти из функции все вместе?
int findConn(int **computers, int *time, int *connections, int cnt, int k, int start){
for (int i=0; i<cnt; i++){
if ((computers[k][i]!=0)&&(i!=start)&&(i!=k)){
if(computers[start][i]!=0){
time[start]++;
return time[start];
} else {
time[start]++;
k=i;
findConn(computers, time, connections, cnt, k, start);
}
}
}
return 0;
}