关于交换前驱/后继的写法问题
void swap_pre(int x){
int a=0,b=0,c=0,d=0;
int k=find(x);
split(rt,k,c,d);
split(c,k-1,b,c);
split(b,k-2,a,b);
rt=merge(merge(merge(a,c),b),d);
}
↑这是对的
void swap_pre(int x){
int a=0,b=0,c=0,d=0;
int k=find(x);
split(rt,k-2,a,b);
split(b,k-1,b,c);
split(c,k,c,d);
rt=merge(merge(merge(a,c),b),d);
}
↑这是错的
为什么?