インデックスによる高速要素挿入/削除のための最良のデータ構造(コンテナ)は何ですか?インデックスによる素早い要素の挿入/削除のための最良のデータ構造(コンテナ)は何ですか?
答えて
:
struct Node<T>
T value
Node left
int left_count
Node right
int right_count
end
がleft_count
値がツリーのleft
ブランチ内のノードの数を保持するだろう、と同様に右側のルックアップは、ツリーの先頭から開始し、所望のインデックス値を左右のカウントと比較して下方に移動することによって実行される。挿入と削除は、カウント値を適切に調整して、通常のバイナリツリーアルゴリズムを使用して実行されます。バイナリツリーのバランスを取ることを要求することにより、より一貫したパフォーマンスを達成することができます。
この種のツリーにはおそらく名前があります。より多くの情報を感謝!
私はあなたが意味すると思うRed-black tree –
赤黒の木には左右の部分木の数は含まれていません。 –
あなたがメモリ内またはディスク内の何かについて話しているかどうかによって異なります。通常、ディスク上にはBツリーのいくつかの変形があり、通常はメモリ内にリンクされています(挿入する必要のあるノードがわかっている場合)。
リンクされたリストは、ノードを知らない(リストにO(n)を必要とする「インデックスによるアクセス」要件がある) –
固定間隔で動的にサイズ変更されるハッシュテーブルを試してください。
かなり均一な分布を仮定すると、は基本的に一定時間[O(1)]アクセス時間になるはずです。
http://www.cs.cornell.edu/courses/cs312/2006fa/lectures/lec14.html
そのリンクは良い説明を与えるように思われます。あなたはO(Nログ)は、このようなノード構造の二分木を使用してパフォーマンス得ることができる
私は自分の答えを更新しました - これは良い解決策だと思います。 – Isaac
- 1. 中から要素を削除するための最良のデータ構造は何ですか?
- 2. 上位n個の要素をソート順に保つための最良のデータ構造は何ですか?
- 3. 要素の効率的な挿入のためのデータ構造の選択
- 4. 要素のセットへのidマッピングのルックアップのための良いデータ構造(C++)
- 5. ダブルリンクリストの要素の挿入と削除
- 6. 構造を選択するための素早い変数
- 7. カレンダー/日プランナーのための最良のデータ構造は何ですか?
- 8. JXA(自動化のためのJavascript)の要素および/または要素のコンテナの関係の削除
- 9. この種のデータをJavaで構築するための最良のデータ構造は何ですか?
- 10. この構造体に要素を挿入する方法
- 11. 後で要素をステークホルダーに配布できる要素を保持するための最良のデータ構造ですか?
- 12. STLコンテナ挿入要素
- 13. 高速ランダムアクセス、検索、挿入、削除のための効率的なデータ構造
- 14. 構造体のインデックス行列要素member
- 15. JavaのLinkedListデータ構造におけるトラバース、挿入、削除
- 16. スタックデータ構造の最初と最後の要素は何ですか?
- 17. Hibernate:コレクション内の要素を削除する最良の方法
- 18. ゲームを作るための良い構造は何ですか?
- 19. 1ピクセルの接続を削除する構造要素
- 20. 効率的な挿入、削除、最大値検索でキャッシュを設計するためのデータ構造
- 21. 要素を素早く[(String、String)]タプルに挿入します
- 22. 他の構造体を含むstructurから要素を挿入して削除する
- 23. ランダム要素を選択するためのデータ構造ですか?
- 24. 3要素タプルの最初の要素を削除する
- 25. 構造体の配列から要素を削除するにはどうすればよいですか?
- 26. Rubyの挿入メソッドが要素を間違ったインデックスに挿入する
- 27. 辞書の最初のインデックスに要素を挿入するにはどうすればいいですか?
- 28. メインのdivの挿入された要素をドラッグして削除したい
- 29. セットから最も近い要素を効率的に検索するためのデータ構造
- 30. 構造体へのポインタの配列から要素を削除する
これは、http://stackoverflow.com/questions/890357/efficient-data-structure-for-fast-random-access-search-insertion-and-deletionの複製である可能性があります。 –