Задать вопрос
@ikanaide
студент-математик

Задан файл с функциями определить какие из них рекурсивные?

Всем привет. Столкнулся со следующей проблемой : нужно написать парсер, который будет искать рекурсивные функции в файле. В частности, нужен алгоритм проверки того, что функция является рекурсивной.
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Архитектор ПО
    4 месяца
    Далее
  • Stepik
    Алгоритмы: теория и практика. Структуры данных
    1 неделя
    Далее
Решения вопроса 3
ApeCoder
@ApeCoder
Найти или написать парсер
Пройтись по AST
Найти те определения функций, которые включают вызовы себя
Ответ написан
Комментировать
GavriKos
@GavriKos
Микропетпроджект - домашнее облако homeCloud
Начать строить дерево вызовов для каждой функции. Как только при добавлении очередного вызова где то выше по дереву уже есть вызов этой же функции - вот вам и рекурсия.
Ответ написан
Комментировать
irishmann
@irishmann
Научись пользоваться дебаггером
Читаем все функции в массив, где ключом будет название функции, а значением - тело функции.
Перебираем этот массив, проверяя следующим образом:
Если название функции содержится в теле - то это рекурсия, пишем этот элемент в другой массив
Иначе - рекурсии нет, проверяем следующий элемент.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы