У меня есть набор (n) значений, все из которых имеют соответствующие узлы на моем графике.Я начинаю с неизвестных отношений друг с другом.(см. начальные узлы синим цветом)
Я хочу выяснить, насколько просто, если какое-либо значение / узлы являются дочерними по отношению к любому из других, тогда применяются эти правила для фильтрации результатов:
- Если узел является дочерним, то отбросьте его.(белые узлы)
- Если узел является корнем, вернуть его.(зеленые узлы)
- Если у узла нет дочерних элементов, также верните его.(зеленый узел 673)
Может быть до 50 начальных узлов.Я пытался выполнять итерацию по ним, сравнивая две за один раз, отбрасывая их, если они - дети, - но число итераций быстро выходит из-под контроля в больших наборах.Я надеюсь, что есть некоторая магия графа, которую я пропустил.Сайфер, пожалуйста!
Спасибо!
![enter image description here](https://i.stack.imgur.com/nmbgt.jpg)