case class Node(id: Int, children: Set[Node])
val topLevel = Node(1, tlChildren)
val topLevel2 = Node(2, tl2Children)
val nodes = Set(topLevel1, topLevel2,..)
topLevelのIDのマップを作成し、その値を子のすべてのIDのリストにしたいと考えています。トップレベルのノードとその子のマップを作成する方法
val map = Map[Int, List[Int]] = ..
このマップでは、任意のIDを指定すると、トップレベルIDが何であるかを知ることができます。
上記のノードクラスとノード階層を指定してこのマップを生成するにはどうすればよいですか?
は、私はこのようなトップレベルのノードを取得することができます。
val topLevelNodeIds = nodes.map(n => n.id)
しかし、私は、再帰呼び出しでそれを使用する必要があるので、それが役に立つかわかりません。
スポットを割り当てることができます。すべてのIDをツリー内で見つける必要があります。これは、すべての子要素のすべてのidsであり、このノードの子要素です。子ノードのidを見つけるには、それはその子ノードのすべてのidであり、それ自身のidです。その子供の中のすべてのidsを見つけるには、それはその子供たちのすべてのidsです。あなたのノードに子供がいないときは停止します。あなたはすでにそれのidsの "リスト"を見つける方法を知っています。 –