Self-adjusting binary search trees

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.

[1]  Journal of the Association for Computing Machinery , 1961, Nature.

[2]  M. AdelsonVelskii,et al.  AN ALGORITHM FOR THE ORGANIZATION OF INFORMATION , 1963 .

[3]  Norman Abramson,et al.  Information theory and coding , 1963 .

[4]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[5]  T. C. Hu,et al.  Optimal Computer Search Trees and Variable-Length Alphabetical Codes , 1971 .

[6]  Edward M. Reingold,et al.  Binary search trees of bounded balance , 1972, SIAM J. Comput..

[7]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[8]  Donald E. Knuth,et al.  The art of computer programming: sorting and searching (volume 3) , 1973 .

[9]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[10]  Robert E. Tarjan,et al.  Efficiency of a Good But Not Linear Set Union Algorithm , 1972, JACM.

[11]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[12]  J. Ian Munro,et al.  Self-organizing binary search trees , 1976, 17th Annual Symposium on Foundations of Computer Science (sfcs 1976).

[13]  Leonidas J. Guibas,et al.  A new representation for linear lists , 1977, STOC '77.

[14]  Donald E. Knuth,et al.  The art of computer programming: V.1.: Fundamental algorithms , 1997 .

[15]  William E. Wright Dynamic Binary Search Trees , 1978, ACM Annual Conference.

[16]  T. C. Hu,et al.  BINARY TREES OPTIMUM UNDER VARIOUS CRITERIA , 1979 .

[17]  Kurt Mehlhorn Dynamic Binary Search , 1979, SIAM J. Comput..

[18]  James R. Bitner,et al.  Heuristics That Dynamically Organize Data Structures , 1979, SIAM J. Comput..

[19]  Robert E. Tarjan,et al.  Design and Analysis of a Data Structure for Representing Sorted Lists , 1978, SIAM J. Comput..

[20]  D. Sleator An 0 (nm log n) algorithm for maximum network flow , 1980 .

[21]  Hans-Peter Kriegel,et al.  Multidimensional B-tree: An Efficient Dynamic File Structure for Exact Match Queries , 1980, GI Jahrestagung.

[22]  Robert E. Tarjan,et al.  Biased 2-3 trees , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[23]  Kurt Mehlhorn,et al.  A new data structure for representing sorted lists , 1980, Acta Informatica.

[24]  Kurt Mehlhorn,et al.  Robust Balancing in B-Trees , 1981, Theoretical Computer Science.

[25]  David Maier,et al.  Hysterical B-trees , 1981, Inf. Process. Lett..

[26]  S. Rao Kosaraju,et al.  Localized search in sorted lists , 1981, STOC '81.

[27]  Robert E. Tarjan,et al.  A data structure for dynamic trees , 1981, STOC '81.

[28]  Robert E. Tarjan,et al.  A data structure for dynamic trees , 1981, STOC '81.

[29]  J. Feigenbaum,et al.  Two new kinds of biased search trees , 1983, The Bell System Technical Journal.

[30]  Robert E. Tarjan,et al.  Self-adjusting binary trees , 1983, STOC.

[31]  Jon Louis Bentley,et al.  Worst-Case Analyses of Self-Organizing Sequential Search Heuristics. , 1983 .

[32]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[33]  Jan van Leeuwen,et al.  Worst-case Analysis of Set Union Algorithms , 1984, JACM.

[34]  Robert E. Tarjan,et al.  Sequential access in splay trees takes linear time , 1985, Comb..

[35]  Robert E. Tarjan,et al.  Biased Search Trees , 1985, SIAM J. Comput..

[36]  R. Tarjan Amortized Computational Complexity , 1985 .

[37]  Robert E. Tarjan,et al.  Amortized efficiency of list update and paging rules , 1985, CACM.

[38]  Robert E. Tarjan,et al.  Self-Adjusting Heaps , 1986, SIAM J. Comput..