Here we consider trees that can support basic operations (MEMBER, INSERT, DELETE, MIN, MAX, JOIN, SPLIT, etc.) in O(log(n)) worst case time per operation. A naive approach would be to use something like a full k-ary tree as was used for heaps. Although for just the operations INSERT and DELETEMIN this approach worked to implement priority queues, for a wider range of operations, we need a type of tree with a reasonable degree of flexibility; that is, it must be possible to represent the data with trees of many shapes. The idea is to limit the set of possible tree shapes to ones that have height O(log(n)), but with enough flexibility to make –adjustment— of the tree relatively easy after an operation disturbs its balance.
Unable to display preview. Download preview PDF.