


Глубина рекурсии в рекурсивной функции? C++
Глубина в стеке нужна.

Первичный вызов идёт дефолтным значением глубины = 0
А считать её как?
void simpleRecursion(unsigned a, unsigned depth = 0)
{
cout << "value: " << a << " depth: " << depth << endl;
if (a == 0) return; // Условие остановки.
simpleRecursion(a - 1, depth + 1); // Рекурсивный вызов.
}
int main()
{
simpleRecursion(15);
system("pause");
}
Если в дереве и нужно рекурсивно узнать у чилда глубину в дереве:
Проверить есть ли парент:
Если парента нет - остановиться.
Если парент есть, вызвать для него функцию, увеличив счётчик глубины.
Если нужно вывести для всех чилдов глубину:
Начинать с корневого узла.
Проверить есть ли чилды:
Если у узла нет чилдов - остановиться.
Если у узла есть чилды, вызвать функцию для них, увеличив счётчик глубины.
До исчерпания стека - если ТУПО написать код.
Более-менее адекватные люди применяют вот это:
https://ru.wikipedia.org/wiki/Хвостовая_рекурсия