У меня есть словарь с данными древовидной структуры (ключ - имя человека, его ценность - дети). Я хотел бы рекурсивно получить глубину от одного данного члена к другому (get_depth (from_person, to_person)).Python, вычисляя глубину генеалогического древа от одного члена к другому
0
A
ответ
0
Я бы выбрал DFS, так как он облегчает отслеживание глубины.
def get_depth(root, target):
if root == target:
return 0
if not d[root]:
return None
for child in d[root]:
depth = get_depth(child, target)
if depth is not None:
return 1 + depth
return None
return
Последнего, строго говоря, не нужен, но я предпочитаю по буквам этих вещей. Не стесняйтесь задавать любые вопросы, но это должно быть достаточно понятным. Вы можете чувствовать себя более комфортно заменить None
с -1
, а затем проверить if depth >= 0
Смежные вопросы
- 1. Создание генеалогического древа Java
- 2. структура данных для генеалогического древа
- 3. Как предотвратить перекрытие в генераторе генеалогического древа?
- 4. Как создать список списков для генеалогического древа
- 5. Реляционная база данных для генеалогического древа
- 6. найти отношение сестры от генеалогического древа с использованием пролога
- 7. передать JFrame.getText() от одного члена класса к другому?
- 8. Присвоить значения от одного члена группы к другому в R
- 9. Получение одного частного члена от одного класса другому
- 10. От одного объекта к другому
- 11. Расположение узлов в визуализации генеалогического древа с помощью Dot/Graphviz
- 12. Семейное древовидное изображение для веб-приложения для генеалогического древа
- 13. Рекурсивный цикл для создания генеалогического древа? (PHP/MySQL/HTML)
- 14. Python 2.7 метод передачи от одного сценария к другому
- 15. Передавать целое число от одного def к другому в Python
- 16. Python посылает переменную от одного сценария к другому
- 17. Отправить переменную от одного скрипта Python к другому
- 18. OpenCV python copy polygon от одного изображения к другому
- 19. Python: Применение общих ключей от одного словаря к другому
- 20. как перейти от одного вида к другому
- 21. Передача информации от одного UIView к другому
- 22. OpenCV деформирование от одного треугольника к другому
- 23. копия ветки от одного к другому репо
- 24. Передача фотографий от одного приложения к другому
- 25. Возвращаемое значение от одного метода к другому
- 26. Возвратите JSON от одного JSP к другому?
- 27. Передача значения от одного MXML к другому
- 28. Постепенно переходите от одного цвета к другому
- 29. Необходимость Ping от одного процесса к другому
- 30. Отправить изображение от одного UIViewController к другому
Выберите свой яд: поиск в ширину или в глубину поиска –
@PatrickHaugh Относно метода (глубина первой или ширина -first) я бы prefeer глубину первой , но больше лучше, так как я пытаюсь понять оба :) – SyntaxError