m-way 探索木を実装したいのですが、m-way 探索木の実装の基本が必要です。同じことを実装するのに役立つ良いリソースを誰かが提供してくれますか??
2 に答える
ほとんどの m-way 探索ツリーは、(m-1) 個のキーを各ノードにソートされた順序で格納することによって機能します。次に、これらの値は要素を m 領域に分割します。m-2 領域は (m-1) キーの間で囲まれ、左端のキーよりも 1 領域小さく、最大のキーよりも 1 領域大きくなります。たとえば、4 方向ツリーのノードは次のようになります。
1 3 7
x < 1 1 < x < 3 3 < x < 7 7 < x
検索を実装するには、ツリーのルートから開始し、要素をノードに格納されている各値と比較します。ノードが属するグループに基づいて、ノードが見つかったことを報告するか、適切な子に下ります。
ノードを挿入および削除する方法の背後にある実際のメカニズムは、使用する多元配置ツリーのタイプによって異なります。これは、バイナリ サーチ ツリーの挿入および削除がツリーのタイプ (AVL、スプレイ、赤/黒など) によって異なるのと同じです。良い出発点は、おそらく最も有名な m ウェイツリーであるB ツリーです。有名な CLRS の教科書には、構造に特化した章全体があり、アルゴリズムの詳細については優れたリソースになります。
お役に立てれば!
三分木を探してみませんか?三分木はデータ構造に似たトライですが、パトリシア トライやクリビット ツリーと同様に、タイプまたはツリー モデルとして B ツリーを使用します。カートトライも良い出発点です。