で、私は問題を解決していると私はこれだ:依存[セット[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での設定は、例えば、依存関係を表します。ant(1)ですがSet(0)は、ant(1)がAnt(0)のSet()に依存することを意味します。 ant(7)はAnt(5)とant(6)に依存することを意味するSet(5,6)です。
私が必要とするのは、繰り返しのないセット間のすべての依存関係を持つ新しいListBuffer [Set [Int]]です。たとえば、ant(6)はant(3)とant(4)に依存します。 ant(1)とant(4)はant(2)に依存し、ant(1)とant(2)はant(0)に依存するので、antのすべての依存関係(6)である:だから初期ListBufferの結果がでなければなりません(3,4,1,2,0)
セット:それを行うための最善の方法がある
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おそらく、 'tree'ではなく' graph'という単語を探しています。 –
だから、この構造では不可能ですか? – KonaKona