Я анализирую некоторый код на предмет его зависимостей.Допустим, есть некоторые взаимосвязанные зависимости, например:
F
A /|
| / |
| / |
V < V
B<--->C--->E
\ / |
> < |
D<------+
B зависит от A, а CC зависит от B, а FE зависит от C, а FD зависит от B и C, а E
Weесть проблемы с B и C, они зависят друг от друга.Они должны быть объединены в супер-узел.У нас проблемы с C и E и F, у них есть цикл.Они должны быть объединены в супер-узел.
В итоге вы получите
A
|
V
super
node
|
|
D
Есть ли хороший источник библиотеки или алгоритма (Java предпочтен, но открыт для предложений), который позволяеттакое сокращение?
Любые узлы в цикле объединяются в один узел.Любой узел, который указал на любой узел в новом узле, должен указывать на новый узел.Любой узел, на который указывает любой узел в новом узле, должен заставить новый узел указывать на этот узел.
Спасибо!