Шаг 120.
Рекурсия на Python.
Множественная рекурсия II: пазлы, фракталы и прочее. Примеры задач

    На этом шаге мы рассмотрим несколько заданий и приведем их решения.

    Приведем несколько примеров решения задач.

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

Раскрыть/скрыть решение и комментарии.

    Задание 2. Реализуйте функцию, которая для заданного входного списка a из n элементов определяет самый длинный непрерывный его подсписок одинаковых элементов. Например, для a = [1, 3, 5, 5, 4, 4, 4, 5, 5, 6] результатом будет подсписок [4, 4, 4]. Разбейте задачу так же, как в примере 7.6, и примените вспомогательную рекурсивную функцию, определяющую одинаковость всех элементов подсписка. Кроме того, реализуйте рекурсивную функцию, которая не вызывает вспомогательный метод, как в примере 7.7.

Раскрыть/скрыть решение и комментарии.

    Задание 3. Реализуйте функцию из (3.2), вычисляющую биномиальный коэффициент.

Раскрыть/скрыть решение и комментарии.

    Со следующего шага мы начнем рассматривать задачи подсчета.




Предыдущий шаг Содержание Следующий шаг