0

古いプロジェクトを書き直しています。不可解な理由 (従来の企業データベース、変更できない) により、ツリー型のデータは独特な方法でデータベースに格納されます。各ノードには、ノードの深さと最下位の深さの子ノードのリストという 2 つのプロパティが定義されています。

それを通常のツリーに変換するにはどうすればよいですか? 現在、ツリーに配置するすべてのノードのセットがあるレベルですが、途方に暮れています。私が考えたことの 1 つは、最も深いレベルからノードを追加し、ルート ノードに上っていくということですが、それはぶら下がっているノードをいじったり、ツリーのサイズを変更したりするのが大変です。

編集:私の方法では、下位レベルのノードのすべての組み合わせをチェックして、子の合計が上位レベルのノードの合計と等しいノードを見つける必要があることに気付きました。いいえ。

4

1 に答える 1

0

ノードを深さでソートし、ノードをレベルごとに挿入するだけです。

ルートは 1 つしかないため (入力に応じて深さ 0 または 1)、最初のステップは簡単です。

一般的な手順では、次のレベルの各ノードを正しい親に割り当てる必要があります。基準は単純です。子ノードの最下位の子は、親の最下位の子のサブセットです。実行時間が問題にならない場合は、一致するものが見つかるまで、すべての親ノードに対して各子ノードをチェックしてください。それが遅すぎる場合は、コメントを追加してください。もう少し考えます;-)

于 2013-09-25T07:12:35.997 に答える