左偏树模板

来源:互联网 发布:淘宝客服号怎么登陆 编辑:程序博客网 时间:2024/05/29 09:43

解析链接:http://www.cnblogs.com/skywang12345/p/3638327.html

struct Tree{    int value;    int dist;    Tree *left,*right;};Tree *tree[maxn];int distance(Tree *t){    return t==NULl?0:t->dist;}void fixdist(Tree *t){    if(distance(t->left)<distance(t->right))        swap(t->right,t->left);    t->dist=distance(t->right)+1;}Tree * merge(Tree *a,Tree *b){    if(a==NULL) return b;    if(b==NULL) return a;    if(b->value>a->value) swap(a,b);    a->right=merge(a->right,b);    fixdist(a);    return a;}Tree *delMax(Tree *t){    if(t!=NULL)        return merge(t->left,t->right);    return NULL;}void init(Tree* &t,int val){    t=new Tree;    t->dist=1;    t->value=val;    t->left=t->right=NULL;}
原创粉丝点击