Self-adjusting binary search trees
- 1 July 1985
- journal article
- Published by Association for Computing Machinery (ACM) in Journal of the ACM
- Vol. 32 (3) , 652-686
- https://doi.org/10.1145/3828.3835
Abstract
The splay tree, a self-adjusting form of binary search tree, is developed and analyzed. The binary search tree is a data structure for representing tables and lists so that accessing, inserting, and deleting items is easy. On an n -node splay tree, all the standard search tree operations have an amortized time bound of O (log n ) per operation, where by “amortized time” is meant the time per operation averaged over a worst-case sequence of operations. Thus splay trees are as efficient as balanced trees when total running time is the measure of interest. In addition, for sufficiently long access sequences, splay trees are as efficient, to within a constant factor, as static optimum search trees. The efficiency of splay trees comes not from an explicit structural constraint, as with balanced trees, but from applying a simple restructuring heuristic, called splaying , whenever the tree is accessed. Extensions of splaying give simplified forms of two other data structures: lexicographic or multidimensional search trees and link/cut trees.Keywords
This publication has 17 references indexed in Scilit:
- Amortized efficiency of list update and paging rulesCommunications of the ACM, 1985
- Worst-case Analysis of Set Union AlgorithmsJournal of the ACM, 1984
- A data structure for dynamic treesJournal of Computer and System Sciences, 1983
- Hysterical B-treesInformation Processing Letters, 1981
- Robust balancing in B-treesPublished by Springer Nature ,1981
- Design and Analysis of a Data Structure for Representing Sorted ListsSIAM Journal on Computing, 1980
- Multidimensional B-tree: An efficient dynamic file structure for exact match queriesPublished by Springer Nature ,1980
- Heuristics That Dynamically Organize Data StructuresSIAM Journal on Computing, 1979
- Self-Organizing Binary Search TreesJournal of the ACM, 1978
- Efficiency of a Good But Not Linear Set Union AlgorithmJournal of the ACM, 1975