-
Notifications
You must be signed in to change notification settings - Fork 0
Definition
Keihō Sakapon edited this page Jun 9, 2022
·
8 revisions
多くは Introduction to Algorithms, third edition に準じるが、独自定義もある。
- MINIMUM(S), MAXIMUM(S)
- SUCCESSOR(S, x), PREDECESSOR(S, x)
- INORDER-TREE-WALK(S)
- 木の中間順巡回
- ランク順に全列挙
- SEARCH(S, k)
- INSERT(S, x)
- DELETE(S, x)
- 削除操作は「ノードの取得」と「既に取得されたノードの削除」のステップに分割されるが、ここでは後者
- SELECT(S, i)
- ランクからノードを取得する
- RANK(S, x)
- ノードからランクを取得する
- INSERT-BEFORE(S, x, y), INSERT-AFTER(S, x, y)
- 指定されたノードの直前または直後のランクとなるように挿入する
- INSERT-BY-RANK(S, i, x)
- 指定されたランクとなるように挿入する
- RANK-BY-KEY(S, k)
- キーからランクを取得する
二分木のノードの個数を n
、高さを h
とする。
二分木には、次の 3 つのオプションを付加できる。
- サイズ付き (sized)
- 各ノードがサイズを保持している
- 各ノードに対して、サイズを
O(1)
時間で取得できる
- 各ノードに対して、サイズを
- ランク (インデックス) による探索が
O(h)
時間でできる
- 各ノードがサイズを保持している
- ソート済み (sorted)
- ある全順序関係により、キーがソートされた状態に保たれる
- キーの順序によりランクが定まる
- キーによる探索が
O(h)
時間でできる
- ある全順序関係により、キーがソートされた状態に保たれる
- 自己平衡機構を持つ (self-balancing)
- 高さがつねに
O(log n)
に保たれる - 具体的な実現方法については言及しない
- 木の形状のみに依存するのであれば、挿入および削除の処理とは独立に考えることができる
- ノードの挿入または削除のあとに自己平衡
- 高さがつねに
About
Classes
Development