入力がフォーマットを与え、親ノードであり、子ノードであるツリーを構築する最良の方法は(a,b)
何a
ですかb
? (ノード 1 がルート) 例:
1 2 //adds node #2 as the children of #1 (the root)
1 3 //adds node #3 as the second children of the root
2 4 //adds node #4 as the children of node #2
etc...
二分木に似ている場合、この種の木を作成する方法を理解しています (特定の親ノードに対して、左の子は値が小さく、右の子は値が大きいため)。しかし、親が持つことができる子ノードの量は、私のツリーでは固定されていません。これを効率的に作成するにはどうすればよいですか?ノードが持つa
ことb
ができる子の量が直らない。
編集:追加したいもう1つのこと:各リーフノード(子ノードのないもの)にはいくつかの値が割り当てられます。各ノードの値を計算できるように、再帰的に (または他の方法で) ツリーをたどる必要があります。親ノードの値は、そのすべての子ノードの値の合計です。