Понятие рекурсивного алгоритма. Рекурсивная процедура. Техническая реализация рекурсии. Сравнение механизмов реализации рекурсии и итерации.

Рекурсия - метод определения класса объектов или методов предварительным заданием одного или нескольких (обычно простых) его базовых случаев или методов, а затем заданием на их основе правила построения определяемого класса, ссылающегося прямо или косвенно на эти базовые случаи.
Другими словами, рекурсия - способ общего определения объекта или действия через себя, с использованием ранее заданных частных определений. Рекурсия используется, когда можно выделить само подобие задачи.
Рекурсивный алгоритм (процедура, функция):
Ш алгоритм называется рекурсивным, если в его определении содержится прямой или косвенный вызов этого же алгоритма;
Ш рекурсивная функция - одно из математических уточнений интуитивного понятия вычислимой функции.


Структура рекурсивной процедуры может принимать три разных формы:
Техническая реализация рекурсии

Освобождение стека.

Описание типа данных может содержать ссылку на саму себя. Подобные структуры используются при описании списков и графов. Пример описания списка (C++):
 struct element_of_list
 {
   element_of_list *next; /* ссылка на следующий элемент того же типа */
   int data; /* некие данные */
 };
Рекурсивная структура данных зачастую обуславливает применение рекурсии для обработки этих данных.