我对 SplayTree 和二分搜索比较陌生,但是有没有办法干净地获取 SplayTree 中的下一个和上一个元素?
我正在尝试模仿 Javascript 中的一个包,该包使用 JS SplayTree 包,该包具有 next 和 previous 方法,但似乎无法干净地执行此操作,并且不确定仅执行 index-/+1 是否有效。
SplayTreeMap
有 firstKeyAfter
和 lastKeyBefore
方法。遗憾的是,SplayTreeSet
目前没有等效的。我会遵循链接问题中的建议并使用 SplayTreeMap<T, void>
而不是 SplayTreeSet<T>
。
使用
elementAt
与当前索引的索引 ±1 也应该给你正确的结果,但在缺乏运行时行为的记录保证的情况下,你可能应该期望每个调用可能涉及 O(n) 遍历,并且会是效率低下。