Задачка по программированию
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.01.03 16:42
Оценка:
Что то тут народ совсем далекие от программинга задачки разбирает. Попробую поближе к теме

Значит так — есть некий список сервисов, которые нужно проинициализировать. Для некоторых из сервисов важен порядок инициализации, так как одни сервисы при инициализации могут использовать другие. Для этого каждый сервер может нести несколько меток (атрибутов).
Атрибут №1 — Зависимость(сервис). Указывает на то что этот сервис использует другой(указанный) сервис.
Атрибут №2 — Требует инициализации для работы. Этот атрибут указывается для тех сервисов, которые способны работать только после инициализации.

Требуется:
придумать самый эффективный алгоритм переупорядочивания списка сервисов таким образом чтобы
1) Зависимые сервисы, если возможно, шли после тех, от которых они зависят.
2) Если сервисы зависят друг от друга и ни один из них не имеет атрибута №2 то порядок следования любой
3) Если один из сервисов имеет второй атрибутом, а второй нет и при этом они зависят друг от друга, то первым должен идти тот, который с атрибутом
4) Если оба сервиса имеют второй атрибут и зависят друг от друга должна выдаваться ошибка.

Исходный список сервисов представляет собой хеш-таблицу. При этом у каждого сервиса есть уникальный ключ.
... << RSDN@Home 1.0 beta 5 (np: тихо) >>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.