左偏树
代码
int mer(int x,int y){
if(x==0||y==0) return x+y;
if(lt[x].val>lt[y].val) swap(x,y);
rc=mer(rc,y);
if(lt[lc].dis<lt[rc].dis) swap(lc,rc);
lt[x].dis=lt[rc].dis+1;
return x;
}
斜堆
代码
int mer(int x,int y){
if(x==0||y==0) return x+y;
if(lt[x].val>lt[y].val) swap(x,y);
rc=mer(rc,y);
swap(lc,rc);
return x;
}