Everything about Skip list
Probabilistic data structure
In computer science, a skip list is a probabilistic data structure that allows average complexity for search as well as average complexity for insertion within an ordered sequence of elements. Thus it can get the best features of a sorted array while maintaining a linked list-like structure that allows insertion, which is not possible with a static array. Fast search is made possible by maintaining a linked hierarchy of subsequences, with each successive subsequence skipping over fewer elements than the previous one (see the picture below). Searching starts in the sparsest subsequence until two consecutive elements have been found, one smaller and one larger than or equal to the element searched for. Via the linked hierarchy, these two elements link to elements of the next sparsest subsequence, where searching is continued until finally searching in the full sequence. The elements that are skipped over may be chosen probabilistically or deterministically, with the former being more common. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Skip listA 5-minute orientation
- Skim a recent paper: EASL: Enhanced append-only skip list index for agile block data retrieval on blockchainInfluential work since 2022
- Pick up a classic book: Wuthering HeightsThe most-reprinted book on the subject
- Read the landmark paper: Skip lists: a probabilistic alternative to balanced treesCited 788 times
- Go sideways: Skip graphA closely related topic
- Go sideways: Priority queueA closely related topic
📖 Definitions
Noun A probabilistic data structure that allows fast search within an ordered sequence of elements by maintaining a linked hierarchy of subsequences, with each successive subsequence skipping over fewer elements than the previous one.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Skip lists: a probabilistic alternative to balanced trees
A Dynamic Skip List-Based Overlay for On-Demand Media Streaming with VCR Interactions
Tiara: A self-stabilizing deterministic skip list and skip graph
A skip-list approach for efficiently processing forecasting queries
PhaST: Hierarchical Concurrent Log-Free Skip List for Persistent Memory
A skip list for multicore
Corona: A stabilizing deterministic message-passing skip list
The splay-list: a distribution-adaptive concurrent skip-list
🆕 Influential since 2022
EASL: Enhanced append-only skip list index for agile block data retrieval on blockchain
Ternary tree enhanced append-only skip list: A high-performance blockchain data search index
A bitemporal RDF index based on skip list
A Novel Skip Orthogonal List for Dynamic Optimal Transport Problem
Splay Tree and Skip List: Effectiveness and Analysis in Internet Packet Categorization
📚 Books worth reading
Wuthering HeightsEmily Brontë · 1846
TerminplanerFitness Kalen Bodybuilder Geschenkideen · 2019
American FilmAmerican Film Institute · 1975
C How to ProgramPaul J. Deitel, Harvey M. Deitel · 2007
Physical education for elementary school childrenGlenn Kirchner · 1966
ReworkJason Fried, David Heinemeier Hansson · 2010
Clean CodeRobert C. Martin · 2008
Pro GitScott Chacon, Ben Straub · 2009
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Skip graph Skip graphs are a kind of distributed data structure based on skip lists. They were invented in 2003 by James Aspnes and Gauri Shah. A nearly identical…
- Priority queue In computer science, a priority queue is an abstract data type similar to a regular queue where each element has an associated priority determining its…
- Heap (data structure) In computer science, a heap is a tree-based data structure that satisfies the heap property: In a max heap, for any given node C, if P is the parent node…
- Binary heap A binary heap is a heap data structure that takes the form of a binary tree. Binary heaps are a common way of implementing priority queues. The binary…
- Data structure In computer science, a data structure is a way to organize and store data that is usually chosen for efficient access to data. More precisely, a data structure…
- Tree traversal In computer science, tree traversal (also known as tree search and walking the tree) is a form of graph traversal and refers to the process of visiting…
- Judy array In computer science, a Judy array is an early-2000s Hewlett-Packard hand-optimized implementation of a 256-ary radix tree that uses many situational node…
- Brodal queue In computer science, the Brodal queue is a heap/priority queue structure with very low worst case time bounds: O(1) for insertion, find-minimum, meld (merge…