Я решить проблему, и я получил это:Зависимости в ListBuffer [Set [Int]] в Scala
ant : scala.collection.mutable.ListBuffer[Set[Int]] = ListBuffer(Set(), Set(0), Set(0), Set(1), Set(2), Set(1), Set(3,4), Set(5, 6), Set(7))
В заносит в ListBuffer представляет собой зависимость, например: муравей (1) является Set (0), что означает, что ant (1) зависит от ant (0), который является Set(). То же самое с другими, еще один пример: ant (7) - это Set (5, 6), что означает, что ant (7) зависит от ant (5) и ant (6).
Что мне нужно получить, это новый ListBuffer [Set [Int]] со всеми зависимостями между наборами без повторений, например: ant (6) зависит от ant (3) и ant (4), на в то же время ант (3) зависит от муравьиных (1) и ант (4) зависит от муравьиных (2), а ant (1) и ant (2) зависит от ant (0), поэтому результат со всеми зависимостями в муравьином (6): Set (3,4,1,2,0)
Таким образом, результат начального ListBuffer должно быть:
solution : scala.collection.mutable.ListBuffer[Set[Int]] = ListBuffer(Set(), Set(0), Set(0), Set(1,0), Set(2,0), Set(1,0), Set(3,4,1,2,0), Set(5,6,1,3,4,0,2), Set(7,5,6,1,0,4,3,2))
Какой лучший способ сделать это?
Спасибо.
Вы используете неправильную структуру данных, вам следует использовать дерево вместо –
@Mr D Возможно, вы ищете слово 'graph', а не' tree'. –
Значит, это невозможно сделать с этой структурой? – KonaKona