toyama1710 blog posts tags categories

AVL木書いた3

categories:


PersistentAVLSetのドキュメント

AVLSetを継承してinsert/erase周りをオーバーライドして実装
insert/eraseで変更のあるノードは $O(\log N)$ 個なので全部コピーして良い

merge/split は未実装 (オーバーライドしてassertすべき?)
count(), find_Kth()などのメソッドはそのまま使用可能

insert(const T &dat)

dat を集合に追加する 戻り値はdatを追加したあとのPersistentAVLSet
呼び出し元のオブジェクトを変更することはない $\Theta (\log N)$

erase(const T &dat)

dat を集合から削除する 戻り値はdatを削除したあとの PersistentAVLSet
呼び出し元のオブジェクトを変更することはない $\Theta (\log N)$