这是我的替罪羊树查找前驱的函数,不知道为什么这么写就会出错(后继这样写也会出错)?求各位大佬帮忙看看吧
int fpre(int k,int val){
int x=rt[k],ans=-inf;
while(x){
if(a[x].cnt&&a[x].v<val&&a[x].v>ans)ans=a[x].v;
if(a[x].v>val)x=a[x].l;
else if(a[x].v==val)x=a[x].l;
else x=a[x].r;
}return ans;
}
后来改成rank函数套val函数就对了