Алгоритм стиля обхода узла - PullRequest
0 голосов
/ 30 апреля 2018

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

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

В настоящее время так и происходит.

  • У меня есть дерево узлов, которое может иметь любое количество начальных узлов. (Не точно дерево узлов, но лучшая аналогия, которую я мог придумать).
  • Затем эти узлы разветвляются на любое количество других узлов
  • Ресурсы добавляются к этим узлам и рекурсивно связываются со всеми дочерними узлами.

Теперь проблема возникает, когда я хочу получить все связанные узлы для определенного ресурса. Получить все из них хорошо, но не желательно. Что я действительно хочу сделать, так это получить только самый верхний узел для каждой ассоциации.

Редактировать

Это делается в JS с использованием Sails в качестве платформы с источником данных MySQL.

{
    name: 'Some Node Name'
    children: [] // Array of child nodes
    parent: 1 // Id of the parent node or null if it is top-level
    resources: [] // Array of resources associated
}

Если уже есть алгоритм, который занимается этим уже тогда, я был бы признателен за направление.

Спасибо.

1 Ответ

0 голосов
/ 30 апреля 2018

Если я правильно понял вопрос, узлы, которые вы называете ресурсами верхнего уровня , относятся к тем узлам, на которые не ссылаются никакие другие узлы; с точки зрения теории графов, это те, у которых indegree zero. Из описания проблемы, это те, где parent равно null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...