```cpp
int merge(int l,int r){
if(!l||!r){
return l|r;
}
if(tree[l].rad<tree[r].rad){
tree[l].ch[1]=merge(tree[l].ch[1],r);
update(l);
return l;
}
tree[r].ch[0]=merge(l,tree[r].ch[0]);
update(r);
return r;
}
void split(int i,int k,int &l,int &r){
if(!i){
l=r=0;
//update(i);
return;
}
if(tree[i].val<=k){
l=i;
split(tree[l].ch[1],k,tree[l].ch[1],r);
update(i);
return;
}
r=i;
split(tree[r].ch[0],k,l,tree[r].ch[0]);
update(i);
return ;
}
```
split 和 merge 要记得更新结点大小
by Dreamweaver @ 2021-06-12 21:13:54
还有,读入字符不是得用```
scanf("%c",&ch);```
吗
by Dreamweaver @ 2021-06-12 21:16:00
建议重构(
by KEBrantily @ 2021-06-12 21:16:50
findval中的变量名重了
by Jr_Zlw @ 2021-06-12 21:44:27
@[jjAAjj](/user/379071) 里外两个i
by Jr_Zlw @ 2021-06-12 21:45:10
@[Dreamweaver](/user/91956) @[Jr_zLiwen](/user/191281) 谢谢谢
by jjAAjj @ 2021-06-13 13:15:12