hide
Free keywords:
-
Abstract:
In this paper we show how a slight modification of $(a,b)$-trees allows us to perform member and
neighbor queries in $O(\log n)$ time and updates in $O(1)$ worst-case time (once the position of the inserted or
deleted key is known).
Our data structure is quite natural and much simpler than previous worst-case optimal solutions.
It is based on two techniques :
1) \em{bucketing}, i.e.~storing an ordered list of $2\log n$ keys in each leaf of an $(a,b)$ tree, and \quad
2) \em{lazy splitting}, i.e.~postponing necessary splits of big nodes until we have time to handle them.
It can also be used as a finger tree with $O(\log^*n)$ worst-case update time.