如何在平衡树(Treap)上从这个节点出发获得它的前驱后继节点,要求时间复杂度单次最劣 O(logn)O(\log n)O(logn),遍历均摊 O(n)O(n)O(n)
Treap
想摸你 STL 的平衡树,就要封装 iterator,那么需要实现在平衡树上由某个节点获得它的前驱后继(一般的从根节点出发搜寻,无法保证均摊复杂度)。
iterator
已经在 PushUp 的时候顺便维护了 father 父节点,加上平衡树的左右儿子信息,能否做到如上要求 ?
PushUp
father
目前的思路是模拟中序遍历的部分,不过感觉不是很好想()