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… 

BASED ON SPLAY TREE ADAPTIVE METHODS

TLDR
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

TLDR
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.

Inorder traversal of splay trees

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

TLDR
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

TLDR
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

TLDR
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

TLDR
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.

Inorder traversal of splay trees

Self-Adjusting k-ary Search Trees

  • M. Sherk
  • Computer Science
    J. Algorithms
  • 1995
TLDR
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

TLDR
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

TLDR
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

TLDR
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

TLDR
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

TLDR
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

TLDR
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

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

Self-organizing binary search trees

  • Brian AllenJ. I. Munro
  • Computer Science
    17th Annual Symposium on Foundations of Computer Science (sfcs 1976)
  • 1976
TLDR
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

TLDR
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

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

TLDR
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.
...