# Skip lists: a probabilistic alternative to balanced trees

@inproceedings{Pugh1990SkipLA, title={Skip lists: a probabilistic alternative to balanced trees}, author={William W. Pugh}, booktitle={CACM}, year={1990} }

Skip lists are data structures that use probabilistic balancing rather than strictly enforced balancing. As a result, the algorithms for insertion and deletion in skip lists are much simpler and significantly faster than equivalent algorithms for balanced trees.

## 122 Citations

Balanced Search Trees Made Simple

- Computer ScienceWADS
- 1993

New maintenance algorithms for balanced trees are presented that compare favourably with those for deterministic and probabilistic skip lists and are presented in terms of code simplicity.

Concurrent maintenance of skip lists

- Computer Science
- 1990

This paper describes a new approach to providing efficient concurrent access to a dynamic search structure by describing methods for performing concurrent access and updates using skip lists, and formally proves the correctness of those methods.

A skip list cookbook

- Computer Science
- 1990

This paper describes and analyzes algorithms to use search fingers, merge, split and concatenate skip lists, and implement linear list operations using skip lists.

Analysis of the Expected Search Cost in Skip Lists

- Computer ScienceSWAT
- 1990

The exact value of the expected search cost is derived (in terms of previously studied functions) as well as an asymptotic expression for it, which suggests that Pugh's upper bound is fairly tight for the interesting cases.

Skip Lists-Some Results on a Recent Data Structure ∗

- Mathematics
- 2000

The skip list is a list-based data structure introduced some years ago by Pugh [12]. In [6] an optimized version of the skip list search algorithm has been investigated and an asymptotic result on…

Skip Tree Graph: a Distributed and Balanced Search Tree for Peer-to-Peer Networks

- Computer Science2007 IEEE International Conference on Communications
- 2007

Skip Tree Graph is a novel, distributed, data structure for peer-to-peer systems that supports exact-match and order-based queries such as range queries efficiently and maintains the underlying balanced tree structures using randomization and local operations, which provides a greater degree of concurrency and scalability.

On the Search Path Length of Random Binary Skip Graphs

- Computer ScienceANALCO
- 2010

The skip graph data structure is considered, a load balancing alternative to skip lists, designed to perform better in a distributed environment and it is proved that the maximum length of a search path in a random binary skip graph of size n is of order log n with high probability.

Compressed Perfect Embedded Skip Lists for Quick Inverted-Index Lookups

- Computer ScienceSPIRE
- 2005

This paper describes how to embed efficiently a compressed perfect skip list in an inverted list, which is possible to skip quickly over unnecessary documents in a web-scale search engine.

Concurrent tries with efficient non-blocking snapshots

- Computer Science
- 2012

A non-blocking concurrent hash trie based on shared-memory single-word compare-and-swap instructions that supports standard mutable lock-free operations such as insertion, removing, and copying is described.

Exploring the duality between skip lists and binary search trees

- Computer ScienceACM-SE 45
- 2007

It is shown that the skip list can be interpreted as a type of randomly-balanced BST whose simplicity and elegance is arguably on par with that of today's most popular BST balancing mechanisms.

## References

SHOWING 1-10 OF 36 REFERENCES

Concurrent maintenance of skip lists

- Computer Science
- 1990

This paper describes a new approach to providing efficient concurrent access to a dynamic search structure by describing methods for performing concurrent access and updates using skip lists, and formally proves the correctness of those methods.

A skip list cookbook

- Computer Science
- 1990

This paper describes and analyzes algorithms to use search fingers, merge, split and concatenate skip lists, and implement linear list operations using skip lists.

Analysis of the Expected Search Cost in Skip Lists

- Computer ScienceSWAT
- 1990

The exact value of the expected search cost is derived (in terms of previously studied functions) as well as an asymptotic expression for it, which suggests that Pugh's upper bound is fairly tight for the interesting cases.

Slow Optimally Balanced Search Strategies VS. Cached Fast Uniformly Balanced Search Strategies

- Computer ScienceInf. Process. Lett.
- 1990

Sorting and Searching

- Computer Science
- 1973

The first revision of this third volume is a survey of classical computer techniques for sorting and searching. It extends the treatment of data structures in Volume 1 to consider both large and…

Randomized search trees

- Computer Science30th Annual Symposium on Foundations of Computer Science
- 1989

A randomized strategy for maintaining balance in dynamically changing search trees that has optimalexpected behavior, and generalizes naturally to weighted trees, where the expected time bounds for accesses and updates again match the worst-case time bounds of the best deterministic methods.

Self-adjusting binary search trees

- Computer ScienceJACM
- 1985

The splay tree, a self-adjusting form of binary search tree, is developed and analyzed and is found to be as efficient as balanced trees when total running time is the measure of interest.

Data Structures and Algorithms

- Computer Science
- 1983

The basis of this book is the material contained in the first six chapters of the earlier work, The Design and Analysis of Computer Algorithms, and has added material on algorithms for external storage and memory management.

Randomly balanced binary trees

- Computer Science
- 1980

A procedure to attach a new element to a binary tree at a predefined level is introduced; this insertion algorithm is performed in timeO (ln n), maintains all the properties of binary trees and can…

The anatomy of lisp

- Computer Science
- 1978

This book uses LISP as a means for relating topics which normally get treated in several separate courses, and uses data structures as the main thread in discussions because a proper appreciation of data structure as abstract objects is a necessary prerequisite to an understanding of modern computer science.