平衡樹Treap模版的總結

2022-04-07 07:24:15 字數 856 閱讀 9710

自己總結的乙個平衡樹treap模版,自己測試了一下,感覺沒什麼錯誤,但總感覺有bug,請大家指教一下,下面是自己測試時寫的測試用的**,請無視#include

#include

#include

#include

#include

using namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const int maxn=100010;

struct treap_node;

treap_node *root;

void treap_print(treap_node *p)

}void treap_left_rotate(treap_node *&a)

void treap_right_rotate(treap_node *&a)

int treap_find(treap_node *p,int value)

void treap_insert(treap_node *&p,int value)

else if(value<=p->value)

else

}void treap_delete(treap_node *&p,int value)elseelse

}}else if(valuevalue) treap_delete(p->left,value);

else treap_delete(p->right,value);

}int main()else if(ch=='i')else if(ch=='p')else if(ch=='d')}}

return 0;

}

平衡樹之Treap

乙個集合支援快速插入 刪除乙個數字。支援快速查詢乙個數字在所有已插入數字中的排名。支援刪除大小在某乙個區間內的數字。動態維護乙個數列。可以在數列的任何位置插入刪除,求區間和,min,max,進行區間翻轉 這就需要用到二叉查詢樹 binary search tree 性質 這是一棵二叉樹。對於任意乙個...

Treap 普通平衡樹

最近學習了treap,找了道題目做做 全抄hz.因為普通的二叉樹,會退化成鏈 所以你把讀入打亂順序再構造二叉樹,就明顯卡不掉 平平均深度logn treap就是這樣的 在插入乙個數時,我們搞乙個rnd,賦值隨機 然後如果當前的這個節點rnd小於其父節點,那麼就把他轉到父節點的位置 這樣好比是給這個節...

平衡樹模板 Treap

演算法標籤 treap 種下第一棵平衡樹 這是一道模板題。如果覺得這個題水的可以做一下4544壓行,是千古神犇花爸爸出的神犇題。您需要寫一種資料結構 可參考題目標題,但是這句話其實並沒有什麼用233 來維護一些數,其中需要提供以下操作 1.插入x數 2.刪除x數 若有多個相同的數,因只刪除乙個 3....