# Self-adjusting binary search trees

@article{Sleator1985SelfadjustingBS, title={Self-adjusting binary search trees}, author={Daniel Dominic Sleator and Robert E. Tarjan}, journal={J. ACM}, year={1985}, volume={32}, pages={652-686} }

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…

## Figures from this paper

## 1,327 Citations

### BASED ON SPLAY TREE ADAPTIVE METHODS

- Computer Science
- 2012

Self-adjusting data structures have several potential advantages over other balanced structures or with other constraints and since they adjust according to use, they can be more efficient if the pattern used is skewed and easy to implement with a simple concept.

### SPLAY TREES : Self-Adjusting Binary Search Trees In 1983

- Computer Science

The key idea in self-adjusting BSTs is the so-called splay operation, which modifies the structure (but not the contents) of a BST, which invented an interesting data structure for implementing the dictionary abstract data type, called a splay tree.

### On preorder splaying in binary search trees(abstract and references only)

- Computer ScienceCSC '91
- 1991

It is proved that preorder splaying in binary search trees also takes linear time, a special case of the traversal conjecture of Sleator and Tarjan.

### Dynamic Trees with Almost-Optimal Access Cost

- Computer ScienceESA
- 2018

This paper shows how to maintain an almost optimal weighted binary search tree under access operations and insertions of new elements where the approximation is an additive constant.

### Sequential access in splay trees takes linear time

- Computer ScienceComb.
- 1985

This paper proves the sequential access theorem, which implies as a special case that accessing the items in a splay tree in sequential order takes linear time, i.e.O(1) time per access.

### Competitive Online Search Trees on Trees

- Computer ScienceSODA
- 2020

This work uses a natural generalization of the rotation-based online binary search tree model in which the underlying search space is the set of vertices of a tree, and describes an online $O(\log \log n)-competitive search tree data structure in this model, matching the best known competitive ratio of binary search trees.

### Self-Adjusting k-ary Search Trees

- Computer ScienceJ. Algorithms
- 1995

A heuristic called k-splaying is presented and it is proved that the amortized number of node READs per operation in k-ary trees maintained using this heuristic is O(log2n), which allows us to improve the authors' static optimality bound to O(tlog2k+nlogkn), and similarly improve Sleator and Tarjan'sstatic optimality result.

### Scapegoat trees

- Computer ScienceSODA '93
- 1993

An algorithm for maintaining binary search trees with scapegoat trees, where a node is found that is so unbalanced that the entire subtree rooted at the scapegoat can be rebuilt at zero cost, in an amortized sense.

## References

SHOWING 1-10 OF 58 REFERENCES

### Self-adjusting binary trees

- Computer ScienceSTOC
- 1983

A self-adjusting search tree has the remarkable property that its running time is within a constant factor of the running time for the same set of searches on any fixed binary tree.

### Sequential access in splay trees takes linear time

- Computer ScienceComb.
- 1985

This paper proves the sequential access theorem, which implies as a special case that accessing the items in a splay tree in sequential order takes linear time, i.e.O(1) time per access.

### Two new kinds of biased search trees

- Computer ScienceThe Bell System Technical Journal
- 1983

Two new kinds of biased search trees are introduced: biased, a, b trees and pseudo-weight-balanced trees, which provide a biased generalization of B-trees and are suitable for use in paged external memory, whereas previous kinds ofbiased trees are suited for internal memory.

### A data structure for dynamic trees

- Computer ScienceSTOC '81
- 1981

An O(mn log n)-time algorithm is obtained to find a maximum flow in a network of n vertices and m edges, beating by a factor of log n the fastest algorithm previously known for sparse graphs.

### Dynamic Binary Search Trees

- Computer ScienceACM Annual Conference
- 1978

The best algorithms to maintain balance in binary search trees are shown to be the basic search algorithm which performs no rebalancing, and a combination algorithm.

### Self-Adjusting Heaps

- Computer ScienceSIAM J. Comput.
- 1986

In this paper, two themes in data structure design are explored: amortized computational complexity and self adjustment.

### Self-organizing binary search trees

- Computer Science17th Annual Symposium on Foundations of Computer Science (sfcs 1976)
- 1976

A "move to root" heuristic is shown to yield an expected search time within a constant factor of that of an optimal static binary search tree.

### Optimal Computer Search Trees and Variable-Length Alphabetical Codes

- Computer Science
- 1971

An algorithm is given for constructing an alphabetic binary tree of minimum weighted path length (for short, an optimalAlphabetic tree), where n is the number of terminal nodes in the tree.

### Binary search trees of bounded balance

- Computer ScienceSIAM J. Comput.
- 1973

A new class of binary search trees, called trees of bounded balance, is introduced. These trees are easy to maintain in their form despite insertions and deletions of nodes, and the search time is…

### Robust Balancing in B-Trees

- Computer ScienceTheoretical Computer Science
- 1981

This dissertation makes a thorough study of robust balancing and its impact on maintenance cost, and develops powerful and uniform techniques for deriving upper bounds on rebalancing cost using the "bank account" paradigm, a method for analyzing the cost of a sequence of operations.