Запрос динамического распределения памяти - PullRequest
0 голосов
/ 28 июня 2018

Как мы знаем

  • При динамическом выделении памяти используется область кучи.
  • Для реализации рекурсии нам понадобится стек.

Так можно ли сказать, что для реализации рекурсии нам не потребуется динамическое выделение памяти?

Я в полном замешательстве.!

1 Ответ

0 голосов
/ 01 июля 2018

Сама рекурсия требует только стека. Для реализации рекурсивного факториального метода, например

int fact(int n) {
    if (n <= 1) return 1;
    return n * fact(n - 1);
}

требуется только стек. Нажмите n - 1, вызовите fact и затем умножьте результат (который, вероятно, будет также возвращен в стек) на n. Но даже если сам процесс рекурсии не требует динамической памяти, алгоритм , который вы реализуете с помощью рекурсии, может включать задачи, которые требуют динамической памяти. Поэтому для реализации самой рекурсии может не потребоваться динамическая память, но проблема, которую вы используете для решения рекурсии, может потребоваться.

...