Я пытаюсь реализовать алгоритм поиска в таком сценарии: предположим, что есть 5 человек: люди № 0-4, люди знают только, кто непосредственно работает с ними.Например, люди 0 и 1 никому не управляют, люди 2 управляют людьми 0, люди 3 управляют людьми 1, а люди 4 управляют людьми 2 и 3.
![The described hierarchy](https://i.stack.imgur.com/LuHtk.png)
Предположим, я храню эту иерархию в списке, называемом иерархией hierarchy = [[],[],[0],[1],[2,3]]
Я пытаюсь выяснить, кто работает прямо и косвенно под произвольным лицом. В данном случае это люди, которые работают прямо и косвенно.меньше 4 должно быть 0,1,2,3, или [0,1,2,3] = allUnder(hierarchy,ID = 4)
.
Я думаю, что решение вопроса - это какой-то рекурсивный поиск, но я не совсем понимаю рекурсию.Алгоритм, который я ищу, также должен быть эффективным в случае дублирования значений (например, предположим, что 3 управляет обоими значениями 0,1, ответ должен быть 0,1,2,3).
Я знаю, что я долженпоставить свое решение на первое место, но я действительно не знаю, как решить его на данный момент ... Любая помощь будет принята с благодарностью.
Обновление: я также очень заинтересован в поиске всех прямых и косвенных управленияконкретного человека.