亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Treap 動態平衡樹

2019-11-10 17:41:09
字體:
來源:轉載
供稿:網友

(注:本文是筆者在學習Treap的時候的一點收獲,并將一些基礎知識記錄下來)

Treap

定義:

treap是一中動態平衡的BST,可以高效地處理插入和刪除等,是一棵有鍵值和優先值的樹。

一些小筆記:

(我剛學c++是很討厭指針,但學到Treap時竟然可以接受了,O(∩_∩)O~~)

初始定義

struct node{ char *ch[2];//左右子樹 int r;//隨機的優先值 int v;//值 int s;//以這個節點為根的節點總數 int cmp(int x) { if(x == v) return -1; return x < v ? 0 : 1; } void maintain()//用于更新s { s = 1; if(ch[0] != NULL) s += ch[0]->s; if(ch[1] != NULL) s += ch[1]->s; }};

旋轉

void rotate(node* &o,int d)//左右旋轉 { node* k = o->ch[d^1]; o-ch[d^1] = k->ch[d]; k-ch[d] = o; o = k;}//then change rotatevoid rotate(node* &o,int d)//加上maintain的旋轉 { node* k = o->ch[d^1]; o->ch[d^1] = k->ch[d]; k->ch[d] = o; o->maintain(); k->maintain();//先更新o,再更新k o = k;}

插入

void insert(node* &o,int x){ if(o == NULL) { o = new node(); o->ch[0] = o->ch[1] = NULL; o->v = x; o->rand(); } else { int d = o->cmp(x);//注意有沒有相同的結點 insert(o->ch[d],x); if(o->ch[d]->r > o->r) rotate(o,d^1); }}

刪除

void remove(node* &o,int x)//刪除結點 { int d = o->cmp(x); if(d == -1) { if(o->ch[0] == NULL) o = o-> ch[1]; else if(o->ch[1] == NULL) o = o-> ch[0]; else { int d2 = (o->ch[0]->r > o->ch[1]->r ? 1 : 0); rotate(o,d2); remove(o->ch[d2],x); }//將左右子樹的根中優先級高的旋轉上來,再繼續刪點 } else remove(o->ch[d],x);}

查詢

int find(node* o,int x)//在每次操作前可以查詢這個點是否存在 { while(o != NULL) { int d = o->cmp(x); if(d == -1) return -1;//存在 else o = o->ch[d]; } return 0;//不存在 }

Kth

int kth(node* o,int k)//找第k大的值 { if(o == NULL || k <= 0 || k > o->s) return 0; int s = (o->ch[0] == NULL ? 0 : o->ch[0]->s; if(k == s+1) return o->v; else if(k <= s) return kth(o->ch[0],k); else return kth(o->ch[1],k-s-1);}

這是我所偏好的代碼風格。。。

然后還有一道很妙的例題,叫:LA-5031,感覺很復雜O(∩_∩)O~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人免费黄色网| 欧美日韩亚洲系列| 色与欲影视天天看综合网| 久久精品男人天堂| 美乳少妇欧美精品| 亚洲男人天堂九九视频| 欧美视频裸体精品| 国产精品入口尤物| 欧美日韩国产丝袜另类| 久久久最新网址| 亚洲成人久久一区| 26uuu日韩精品一区二区| 亚洲久久久久久久久久久| 91美女片黄在线观| 高清欧美性猛交| 国产精品久久久久久av福利| 美女久久久久久久久久久| 亚洲国产美女久久久久| 亚洲国产精品久久91精品| 亚洲精品国产精品久久清纯直播| 日韩视频―中文字幕| 国产一区二区美女视频| 这里只有精品视频| 成人www视频在线观看| 91精品久久久久久久久久久| 亚洲图片在区色| 国外日韩电影在线观看| 午夜精品福利视频| 国产精品黄色影片导航在线观看| 91精品视频在线| 久久久久国产精品一区| 久久久精品2019中文字幕神马| 国产精品对白刺激| 亚洲成年人在线| 久久综合伊人77777尤物| 草民午夜欧美限制a级福利片| 亚洲激情视频在线观看| 欧美国产精品日韩| 亚洲成人av中文字幕| 国产精品吴梦梦| 国产精品久久久久久一区二区| 国产精品美女呻吟| 久久精品国产2020观看福利| 欧美精品一本久久男人的天堂| 91国产美女视频| 91在线无精精品一区二区| 国产精品国语对白| 欧美另类极品videosbest最新版本| 深夜福利91大全| 精品国产欧美成人夜夜嗨| 欧美视频裸体精品| 欧美性视频在线| 亚洲人成网站色ww在线| 亚洲无线码在线一区观看| 欧美日韩国产精品一区二区不卡中文| 亚洲欧美日韩爽爽影院| 欧美做受高潮电影o| 亚洲网站在线看| 国产区精品在线观看| 亚洲国产欧美久久| 亚洲自拍偷拍一区| 国产精品免费一区二区三区都可以| 国产在线高清精品| 国产91精品青草社区| 久久影视电视剧免费网站清宫辞电视| 亚洲高清久久网| 日韩福利视频在线观看| 欧美日韩精品在线| 欧美极品美女视频网站在线观看免费| 国产成人aa精品一区在线播放| 亚洲精品国产精品久久清纯直播| 这里只有精品久久| 国产成人aa精品一区在线播放| 久久精品一本久久99精品| 国产中文字幕日韩| 亚洲日本成人女熟在线观看| 国产亚洲激情在线| 亚洲欧美自拍一区| 91免费观看网站| 亚洲男女自偷自拍图片另类| 国产综合色香蕉精品| 久久这里有精品| 成人欧美在线观看| 亚洲女同精品视频| 亚洲精品www| 国产精品久久久久久av| 日韩欧中文字幕| 欧美精品video| 久久影院中文字幕| 国产伦精品一区二区三区精品视频| 日韩精品视频在线观看网址| 亚洲免费成人av电影| 日韩精品免费在线视频| 日韩欧美黄色动漫| 97超级碰碰人国产在线观看| 亚洲最新视频在线| 日本久久久久久久久| 这里只有视频精品| 91视频88av| 日本欧美中文字幕| 97在线视频免费播放| 日韩欧美在线中文字幕| 中文字幕无线精品亚洲乱码一区| 成人网页在线免费观看| 亚洲天堂2020| 久久精品最新地址| 综合欧美国产视频二区| 成人免费看黄网站| 久久av在线播放| 欧美视频在线免费看| 北条麻妃久久精品| 亚洲最新在线视频| 日韩av在线播放资源| 精品国产拍在线观看| 日韩精品在线电影| 日韩高清中文字幕| 国产精品久久在线观看| 亚洲欧美在线一区| 亚洲a级在线播放观看| 国产精品精品一区二区三区午夜版| 亚洲日本成人女熟在线观看| 中文字幕少妇一区二区三区| 日本中文字幕不卡免费| 亚洲日本成人网| 欧美午夜影院在线视频| 国产精品人人做人人爽| 亚洲一区二区三区乱码aⅴ| 午夜精品久久久久久久99热浪潮| 国产精品高清免费在线观看| 69久久夜色精品国产69乱青草| 中国china体内裑精亚洲片| 欧美在线免费观看| 成人有码在线播放| 韩国福利视频一区| 成人国产精品日本在线| 亚洲精品国产精品国自产观看浪潮| 国产日本欧美一区二区三区在线| 午夜精品久久久久久99热| 国产丝袜高跟一区| 美女性感视频久久久| 欧美日韩色婷婷| 国产精品久久久久久网站| 欧美成人中文字幕在线| 正在播放欧美一区| 黑人巨大精品欧美一区免费视频| 精品欧美国产一区二区三区| 色999日韩欧美国产| 亚洲精品黄网在线观看| 俺去啦;欧美日韩| 国产美女高潮久久白浆| 久久久久久久久爱| 91欧美视频网站| 国产精品∨欧美精品v日韩精品| 日本久久91av| 中文字幕视频在线免费欧美日韩综合在线看| 日韩电视剧在线观看免费网站| 久久精品亚洲热| 国产精品福利无圣光在线一区| 亚洲第一区中文99精品| 国产精品综合网站| 亚洲乱码一区二区| 久久在线免费视频| 亚洲a级在线播放观看| 91精品免费视频|