- Related Questions & Answers
- Generalized Lists in Data Structure
- Multiple Lists in a Single Array in Data Structure
- Rectangle Data in Data Structure
- Halfedge data structure
- Deaps in Data Structure
- Quadtrees in Data Structure
- Adjacency lists in Data Structures
- Arrays Data Structure in Javascript
- Stack Data Structure in Javascript
- Graph Data Structure in Javascript
- Queue Data Structure in Javascript
- Set Data Structure in Javascript
- Dictionary Data Structure in Javascript
- Tree Data Structure in Javascript
- Finger Searching in Data Structure

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

In a skip list, one can finger search for element a from a node containing the element b by simply continuing the search from this point a.

Note that if a < b, then search proceeds at backward direction, and if a > b, then search proceeds at forward direction.

The backwards case is symmetric to normal search in a skip list, but the forward case is actually more complicated.

Normally, search in a skip list is expected to be fast because the sentinel at the start of the list is considered as the tallest node.

However, our finger could be associated with a node of height 1. Because of this, we may rarely climb while trying to search; something which never occurs normally.

The most important properties of skip lists are that they need expected linear space, include of expected O(log n) levels, support searches in expected O(log n) time, and support insertions and deletions at a given position in expected O(1) time.

It has been elaborated on the various properties and extensions of skip lists, including pseudo-code for how skip lists support finger searches in expected O(log d) time. To facilitate backward finger searches, a finger to a node V is stored as an expected O(log n) space finger data structure that for each level i stores a pointer to the node to the left of V where the level i pointer either points to V or a node to the right of V. Moving a finger needs this list of pointers to be updated correspondingly.

A backward finger search is accomplished by first identifying the lowest node in the finger data structure that is to the left of the search key y, where the nodes in the finger data structure are considered in order of increasing levels.

Thereafter the search proceeds downward from the identified node similar in a standard skip list search.

Advertisements