操作:1、插入一個數x
2、查詢x再所有數中的排名
平衡樹分別有以下幾種:
splay(應用范圍廣,本質上:二叉排序數)
sbt
treap
AVL
替罪羊
遍歷時用中序遍歷(左->中->右)
用splay使abs(h(左子樹)-h(右子樹))<=1;
Splay Tree使用樹的旋轉操作,同時保證二叉排序樹的性質不變,使被查詢的條目更接近樹根.
目的:使其時間復雜度最小
平衡樹的意義:層數小,能在O(log n)內完成插入,查找,刪除操作.
插入:
插入時,比根節點小的插在左邊,大的在插在右邊。
查詢:
左子樹的節點個數+1
查找:
x > 根節點:向右子樹查找
x < 根節點:向左子樹查找
x = 根節點:找到
刪除:
葉子節點直接刪除
有一個子樹:放孩子節點
有兩個子樹:放左子樹的最大值(因為最大,所以肯定沒有右子樹,把x的右子樹接上
浙公網安備 33010602011771號