Поиск петель в зависимостях
От: SergeyOsipov Россия  
Дата: 15.03.17 05:14
Оценка:
Есть последовательность сущностей — A, B, C, D, E, F, .....
Любая сущность может содержать в себе ссылку на любую другую из этой последовательности, кроме самой себя.
Обязательно есть сущность, которая не зависит ни от какой другой.

Вопроса два
1) Как найти есть ли петли в зависимостях? То есть исключить случаи, когда В зависит от С, С зависит от D и А, а D зависит от F и B?
2) Как отсортировать эту последовательность по принципу зависимостей? То есть первые должны стоять те, которые ни от кого не зависят, дальше, те, которые зависят только от первых и так далее?

Впрочем, по второму у меня придумалось решение. Ввести число для каждой сущности — коэффициент зависимостей. У тех, которые ни от кого не зависят — он равен нулю, а у тех, которые завият — от равен (максимум коэффициента детей + 1). И по этому числу и отсортировать. Этот подход будет работать? Нет подводных камней?

А вот по первому что-то ничего оптимального не придумалось, кроме кучи переборов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.