Я застрял с рекурсивными функциями для данного генеалогического древа в формате словаря (ключи - это родители, значения - это дети).Рекурсивные функции и семейные деревья
в примере family_tree = {"Adam": ["Michael", "Clara", "Daniel"], "Clara": [], "Daniel": ["Elizabeth", "Hans"], etc.}
Адам в этом примере, имеет 3 детей, один из которых является Клара. У нее нет детей и т. Д. И т. Д. Довольно просто.
Теперь, для рекурсивных функций.
- Напишите глубину функции (человека), которая возвращает глубину генеалогического древа человека.
Если человек не имеют детей, глубина ее генеалогическое древо 1. Если (s) у него есть дети, но не внуки, глубина не равна 2. Если он (а) есть внуки, но нет grandgrandchildren, глубина - 3. И так далее.
Не должно ли это работать?
def children(person): return family_tree[person]
def depth(person): if not children(person): return 1 for child in children(person): a = depth(child) if a!= None: return a + 1
Спасибо! :)
Не могли бы вы продемонстрировать какие-либо усилия при решении этого вопроса, чтобы дать представление о том, где вам нужна помощь? –
О, мне нужна помощь с рекурсией в целом. Я понятия не имею, как подойти к этому. –
Сделал 2-й! Обновлен вопрос. :) –