@[danielqf](/user/378555)
`if (k > val[node])`改为 `if (k >=val[node])`
by Terrible @ 2022-04-05 23:06:38
@[Terrible](/user/195942) %%% 已关注,能讲一下为什么吗?
谢谢
by danielqf @ 2022-04-06 20:12:45
@[danielqf](/user/378555)
你最初的代码实现的 `split(node,k,&x,&y)` 是把树分成 $(-\infty,k)$ 和 $[k,+\infty)$,而后面的 `split(root, min - 1, a, root)`,需要的是能分成 $(-\infty,k]$ 和 $(k,+\infty)$ 的操作,如果你把`split(root, min - 1, a, root)`改成`split(root, min , a, root)`,也是对的。只是波操作不配套了。
你需要明白你实现的函数的作用的结果是什么,边界情况也不能疏忽。
另外,insert操作对两种分裂方式没有太多要求。
by Terrible @ 2022-04-06 20:42:59