1

これは存在しなければならない気がしますが、思いつきません。並べ替えられた値のリストを保持し、すばやく検索でき (おそらく配列のように log(N) 時間)、log(N) または定数時間での要素の挿入と削除をサポートするデータ構造はありますか?

4

1 に答える 1

3

これは、要素をソートされた順序で格納し、O(log n) 回の挿入、削除、およびルックアップを許可し、すべての要素の O(n) トラバーサルを許可するバランスのとれた二分探索ツリーの記述とほとんど同じです。

バランスの取れた BST を構築する方法はたくさんあります。赤/黒の木、AVL 木、スケープゴートの木、スプレイの木、AA 木、トレップ、(a, b)-木などがあります。これらのどれでも問題を解決できます。それらの中で、おそらくスプレイ ツリーが最もコーディングしやすく、AA ツリーと AVL ツリーがそれに続きます。

お役に立てれば!

于 2013-07-15T06:15:05.687 に答える