У меня следующая структура:
config
|-- groups
|-- rootgroup
|-- group1 (includes rootgroup)
|-- group2 (includes group1)
|-- group3 (includes rootgroup)
|-- users
|-- Fred (includes group3 and group2)
Так что дерево наследования для Фреда будет выглядеть так:
_Fred_
v v
group2 group3
v v
group1 v
v /
rootgroup
Мне нужен алгоритм для печати порядка чтения линейной конфигурации, начиная свнизу слева от дерева (для данного примера это будет rootgroup - group1 - group2 - group3; group1 перезаписывает rootgroup, group2 перезаписывает group1 и т. д.) и находит рекурсивные ссылки (например, если rootgroup включает группу 2), более того, она должнанайти цикл рекурсии (... -> group2 -> group1 -> rootgroup -> group2 -> ...).
Предпочтительным языком является python, но подойдет любой.
Спасибо.