Псевдокод для получения заказа на основе Dependency

голоса
0

Хорошо, моя ситуация такова у меня есть список вещей, и мне нужно, чтобы получить порядок этих пунктов основываясь на ссылках, которые они имеют. Для примера позволяет сказать, что у нас есть эти пункты: A, B, C, D, E, F

C и D не имеют зависимостей, поэтому их порядок может быть 0. B является тот, который имеет самое с C, D и А. А имеет С и F имеет А и В

  C    D    
  | \  /
  A  /
/ | /
| B 
\ |
  F

В этом случае С, D = 0 А = 1 B = 2 F = 3

Я смотрел через Интернет и, кажется, я не использую правильный научный термин для этого. Скорее всего, это набор или сумка набор в некотором роде. Я знаю, что это не дерево, как эта ситуация имеет более чем два ребра на каждом узле. Ответ может быть на языке программирования, просто пытаюсь сделать его как можно более общим.

Задан 10/12/2009 в 17:12
источник пользователем
На других языках...                            


2 ответов

голоса
2

Простой алгоритм выглядит следующим образом.

Перебор коллекции, ищет элементы, которые не имеют зависимостей: помните эти элементы, как «уровень 0 элементов».

Перебор коллекции снова, ища элементы, которые могут зависеть от «уровня 0 элементов», но не на других элементах: помните эти элементы, как «уровень 1 элементы».

Итерации коллекции снова ищет элементы, которые могут зависеть от «уровня 0 элементов» и / или «Уровень 1 элементов», но не на других элементах: запомнить эти элементы, как «уровень 2-х элементов».

И т.п.

Остановитесь, когда каждый элемент имеет назначенный уровень.

Ответил 10/12/2009 в 17:18
источник пользователем

голоса
0

Вы можете создать график и поддерживать счетчики указателей, или вы можете использовать матрицу. Поиск и прочитать некоторую основную идею графа (математика, а не компьютерной графика), вы можете найти его довольно легко.

Ответил 10/12/2009 в 17:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more