@Dubrovin

Как реализовать алгоритм формирования списка с учётом зависимостей?

Есть примерно вот такой массив:
[
'компонент1' => [ 'компонент2', 'компонент4'],
'компонент2' => [ 'компонент4' ],
'компонент3' => [ 'компонент1' ],
'компонент4' => [ 'компонент5' ],
'компонент5' => [ ],
]

Что означает: компонент №1 зависит от компонентов №2 и №4, компонент №2 зависит от компонента №4 и так далее.
Как получить список всех компонентов, упорядоченный в соответствии с зависимостями? В моём примере это будет список: [ Компонент5, Компонент4, Компонент2, Компонент1, Компонент3]
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В цикле обходить исходный массив, искать элементы без зависимостей, добавлять их в результат, убирать из исходного массива.
В цикле обходить исходный массив, убирать из зависимостей элементы, включённые в результат.
Повторять, пока в результат что-либо добавляется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы