请问在 access 操作中,为什么一定要用当前点的右儿子拉边,而左儿子不行?改成左儿子试了一下,发现 T 飞了,猜测是被卡成链了。
附 access 代码:
void access(int p) { for (int y = 0; p; p = t[p].fa) { splaying(p); rs(p) = y;//这里为什么不能用ls(p)=y? pushup(p); y = p; } }