Информатика и технология программирования


Особенности программирования рекурсивных функций - часть 3


Все сказанное воспринимается естественно, если не забывать о представлении рекурсивной программы как процесса. Тогда естественно, что все шаги процесса являются идентичными, а отличаются только начальным состоянием, текущими параметрами и точкой возврата. Это есть не что иное как фрейм стека рекурсивной функции. Если программа помнит " историю" процесса, то естественным выглядит и хранение в стеке этих фреймов.

Разработка рекурсивных функций имеет свою специфику. Прежде всего, рекурсивные функции используются для обработки рекурсивных структур данных. Здесь обработка вложенного элемента структуры данных естественным образом предполагает рекурсивный вызов функции с передачей указателя на него. Однако рекурсивным может быть и любой алгоритм, в котором имеется линейная или разветвляющаяся цепочка шагов, в каждом из которых выполняется одинаковая последовательность действий.

По отношению к технологии программирования рекурсивных функций следует заметить, что попытки логически проследить рекурсию обречены на провал. И связано это прежде всего с особенностями логического мышления, которое носит линейный характер. Поэтому нужно поступать как раз наоборот : попытаться разработать весь алгоритм, не выходя за рамки текущего рекурсивного вызова. Понять, как это следует делать, можно только, прочитав следующий пункт.




Начало  Назад  Вперед