平衡樹學習筆記

平衡樹學習筆記

洛谷是個好地方!
// splay
The Magical Splay
BST 拓展與伸展樹 (Splay) 一日通
楊思雨 2004國家集訓隊論文 《伸展樹的基本操做與應用》
// treap
隨機平衡二叉查找樹Treap的分析與應用
// sbt
Size Balanced Tree 翻譯
《Size Balanced Tree》
SBT模板
// 非旋轉treap
https://www.luogu.org/blog/yhzq/solution-p3369
http://www.yhzq-blog.cc/fhq-treap%E6%80%BB%E7%BB%93/
// 可持久化Treap
https://www.luogu.org/blog/user25438/solution-p3835
// 模板
https://github.com/Wowkiee/ACM-ICPC/tree/master/Templatehtml

二叉搜索樹

  • 刪除
    • 左右兒子都存在
      • 用右子樹的最小值代替自身
    • 左右兒子不都存在

Splay

  • 插入
    • 插入後旋轉到根
  • 刪除
    • 將pre旋轉到根, ne旋轉到pre的右兒子。
  • 第k大、排名、前驅後繼
    • 找到後旋轉到根
  • 其餘技能
    • 屢次翻轉/刪除區間

Treap

  • 插入
    • 旋轉以維持最小堆性質
  • 刪除
    • 旋轉使之成爲可直接刪除的點
  • 前驅後繼
    • 在樹上二分。

非旋轉Treap

全部操做都基於merge、splitgit

其餘BST

  • SBT
    • 常數小
  • 替罪羊樹
    • kd tree
  • AVL
    • 編程複雜度過高
  • 紅黑樹
    • 編程複雜度過高

可持久化平衡樹

基於非旋轉Treapgithub

相關文章
相關標籤/搜索