次のような階層構造があります。
- 1 ( identifier = 100 )
- 1 (101)
- 2 (102)
- 3 (103)
- 1 (1031)
- 2 (1032)
- 3 (1033)
- 4 (104)
- 1 (1041)
- 2 (1042)
- 3 (1043)
-901 (1001)
- 2 (200)
- 1 (201)
- 2 (202)
- 10 (1000)
- 1 (1001)
必要な特性 :
- 各ノードの識別子は一意である必要があります。
- 識別子は、要素のレベルに応じて増加する必要があります
- 識別子は整数型である必要があります。
- 各要素のカウンターは、新しいレベル/親要素ごとにリセットされます
要素 1.901 と 10.1 の例でわかるように、現在の実装は機能しません。次の解決策を試しました:
- 各レベルに数値を掛けます。
- 最初のレベルのみに数値を掛けて、各子を追加します
識別子が文字列の場合ははるかに簡単になります。この場合、次の方法を使用できます: "level1.level2.level3..."、したがって 1 -> 1 の場合は "1.1" などになります。しかし、これは最も望ましくないステップです。
では、ここで必要な識別子を生成するために使用できるアルゴリズムを提案していただけますか?
更新例を修正しました。PS私はそれが間違っていることを知っていました。