サポートの重複キーを作成したいavl-tree
のですが、with duplicates のデフォルトの動作に問題がありbinary search tree
、ローテーションによって同じキーを持つノードが親の左右に配置される可能性があります。
たとえば、すべてキー A を持つ 3 つのノードを追加すると、ツリーは次のように回転します。
A
/ \
A A
したがって、そのキーですべてのエントリを取得することは問題になります...そして、双方向の検索は良くありません。
私が考えた解決策は、各ノードに重複の配列を格納することです。そのため、既に存在する新しいアイテムを追加すると、新しいアイテムが配列に追加され、キーでアイテムを削除するとノード全体が削除され、すべてのアイテムが検索されますwith key はその配列を返します。
重複を処理する他の方法はありますか?
挿入項目はキーと値を受け取ります..したがって、特定のキーメソッドを使用してfindAllで値を返すために、値を保存する必要があります。