Algorithms and data structures, Proc. workshop WADS ’89, Ottawa/Canada 1989, Lect. Notes Comput. Sci. 382, 381-392 (1989).
Summary: [For the entire collection see Zbl 0753.00021.]
We introduce a self-adjusting -ary search tree scheme to implement the abstract data type DICTIONARY.
We consider a self-adjustment heuristic for -ary search trees. We present a heuristic called -splaying and prove that the amortized number of node READs per operation in -ary trees maintained using this heuristic is . (Note: All constants in our time bounds are independent of both and .) This is within a factor of of the amortized number of node READs required for a -tree operation. A -ary tree maintained using the -splay heuristic can be thought of as a self-adjusting -tree. It differs from a -tree in that leaves may be at different depts and the use of space is optimal. We also prove that the time efficiency of -splay trees is comparable to that of static optimal -ary trees. If sequence in a static optimal tree takes time , then sequence in any -splay tree will take time . These two results are - ary analogues of two of D. D. Sleator and R. E. Tarjan’s [J. Assoc. Comput. Mach. 32, 652-686 (1985; Zbl 0631.68060)] results for splay trees. As part of our static optimality proof, we prove that for every static tree (including any static optimal tree) there is a balanced static tree which takes at most twice as much time on any sequence of search operations. This lemma allows us to improve our static optimality bound to , and similarly improve D. D. Sleator and R. E. Tarjan’s [loc. cit.] static optimality result.