У меня с алгоритмами тяжеловато... У меня есть нек...
# russian
l
У меня с алгоритмами тяжеловато... У меня есть некая электро сеть, состоящая из похожих элементов: линия - устройство - линия - устройство - линия - устройство - линия - устройство. На устройстве это может ветвиться. В принципе, у этих объектов есть общий интерфейс. Часто надо броить по этому дереву, или находить что то в нем. Например крайние точки. Или вычитать дерево одно дерево из другого. Может есть какой то готовый инструмент для работы с такими "списками"? Я велик с tailrec написал конечно. Но.. это ж велик.
v
у apache вроде была библиотечка для графов с топологическими алгоритмами, но не могу сказать будет ли это проще своего велосипеда
a
Описание звучит как классическая рекурсивная композиция. Паттерн Composite. Попробуйте посмотреть тут: https://vk.com/doc190970339_437529139?hash=de6755fd0cea84f041&dl=72794d5f17eb3c03f6 стр. 162, про вычитание и т.д. в Kotlin можно перегружать эти операторы https://kotlinlang.ru/docs/reference/operator-overloading.html
g
что-то отсюда, наверное, ради готовых алгоритмов запросов к графу: https://stackoverflow.com/questions/51574/good-java-graph-algorithm-library