[學習筆記] Splay & Treap 平衡樹 - 資料結構

XiaoLe_MC發表於2024-08-29

[學習筆記] Splay & Treap 平衡樹 - 資料結構

Splay 樹

又名伸展樹,一種平衡二叉查詢樹,透過 \(\text{Splay}\) 操作不斷把節點旋到根節點來維護整顆樹的平衡。

說人話,很玄學的玩意,複雜度是單 log 級別的。為啥是單 log,科學的解釋請移步 OI-WIKI。不科學的解釋就是,透過不斷 \(\text{Splay}\),以至於整棵樹不會變成一條鏈,再加上二叉搜尋樹的看家本領,有點類似於二分查詢,於是複雜度就變成 \(\mathcal{O}(n\log n)\) 了。

說一說它的一些操作。從它最重要的操作開始。

Splay 操作

單次 splay 的本質就是,把某個節點與它父親的關係調換一下。因為這是個二叉查詢樹,所以這種操作很方便:看圖:

imageimage

如果

相關文章