Atmosphere- Line Graph (h) x-axis: skip every other box y-axis: Skip every 3 boxes Title?
Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S...
Transcript of Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S...
![Page 1: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/1.jpg)
Skip ListsEduardo Nakamura
Icons made by Freepik, Smashicons, Roundicons, Flat Icons, Cursor Creative, Vectors Market, Pixel Perfect, DinosoftLabs, Nikita Golubev, Icon Monk, Pixel Buddha from https://www.flaticon.com and is licensed by Creative Commons BY 3.0. For more, check the Flaticon Basic License. These slides should not be published or distributed without the author’s permission.
![Page 2: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/2.jpg)
Outline and Reading
Skip list (§9.4)
Search and update operations in a skip list (§9.4.1)
Probabilistic analysis of skip lists (§9.4.2)
![Page 3: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/3.jpg)
Skip List
1. A list of h+1 lists Sh ⊆ Sh–1 ⊆ … ⊆ S1 ⊆ S0
2. h is the height of the skip list
3. Si+1 has roughly half of the elements from Si, randomly chosen
S0 has all entries (key;value) in non-decreasing order
Sh has no entry (key;value)
4. Search “mimics” a binary search
Sketching the idea
![Page 4: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/4.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55S0
Building a Skip List
lower sentinel upper sentinel
![Page 5: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/5.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
S0
S1
Building a Skip List
![Page 6: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/6.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
S0
S1
S2
Building a Skip List
![Page 7: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/7.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
S0
S1
S2
S3
Building a Skip List
![Page 8: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/8.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
S0
S1
S2
S3
S4
Building a Skip List
![Page 9: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/9.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Building a Skip List
h = 5 (height of the skip list)
![Page 10: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/10.jpg)
“Quadruply linked list” (quad-nodes)
key and value Pointer to up, down, left, and right nodes
Traverse horizontally and vertically using
above() and below()
before() and after()
Bounded by sentinels (–∞ and +∞)
Implementing a skip list
above()
below()
before() after()0 B
righ
t
left
up
down
![Page 11: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/11.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
![Page 12: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/12.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 13: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/13.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 14: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/14.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 15: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/15.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 16: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/16.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 17: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/17.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 18: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/18.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 19: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/19.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 20: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/20.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 21: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/21.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 22: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/22.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
50
![Page 23: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/23.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
![Page 24: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/24.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Searching a Skip List
skipSearch(50)
![Page 25: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/25.jpg)
Pseudo-code for skipSearch()
Algorithm skipSearch(k)Input: A search key kOutput: Position p in the list S0 such that the entry at p has key ≤ k
p ← Sh.begin();
while below(p) ≠ null do
p ← below(p); //drop down
while k ≥ key(after(p)) do
p ← after(p); //scan forward
end while
end while
return p;
![Page 26: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/26.jpg)
Pseudo-code for find()
Algorithm find(k)Input: A search key kOutput: Position p in the list S0 such that the entry at p has key = k, null otherwise
p ← skipSearch();
if key(p) ≠ k thenreturn null;
elsereturn p;
end if
![Page 27: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/27.jpg)
Exercise
1. Search for key 55 (show the visited nodes and links)
2. Search for key 20 (show the visited nodes and links)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
![Page 28: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/28.jpg)
Exercise
1. Search for key 55 (show the visited nodes and links)
2. Search for key 20 (show the visited nodes and links)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
![Page 29: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/29.jpg)
Exercise
1. Search for key 55 (show the visited nodes and links)
2. Search for key 20 (show the visited nodes and links)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
![Page 30: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/30.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Removing from a Skip List
erase(31)
![Page 31: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/31.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Removing from a Skip List
erase(31)
![Page 32: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/32.jpg)
12–∞ +∞17 20 25 31 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Removing from a Skip List
erase(31)
![Page 33: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/33.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 31 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Removing from a Skip List
erase(31)
![Page 34: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/34.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 31 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Removing from a Skip List
erase(31)
![Page 35: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/35.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Removing from a Skip List
erase(31)
![Page 36: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/36.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Removing from a Skip List
erase(31)
![Page 37: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/37.jpg)
Pseudo-code for erase()
Algorithm erase(k)Input: Key kOutput: None
current ← skipSearch(k);
if key(current) ≠ k then
return;
end if
current ← above(current);
doerase(current.below()); //erase lower levelcurrent ← above(current); //move to upper level
until current = null
![Page 38: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/38.jpg)
Exercise
1. Remove for key 55 (show the visited nodes and links)
2. Remove for key 17 (show the visited nodes and links)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
![Page 39: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/39.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
![Page 40: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/40.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
![Page 41: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/41.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
41
![Page 42: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/42.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
41
41
![Page 43: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/43.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
41
41
41
![Page 44: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/44.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
41
41
41
41
![Page 45: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/45.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
41
41
41
41
41
![Page 46: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/46.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
41
41
41
41
41
In this case (tails), the
algorithm would stop…
![Page 47: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/47.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
insert(41)
41
41
41
41
41
41
![Page 48: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/48.jpg)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
Inserting in a Skip List
41
41
41
41
41
–∞ +∞S5
41
![Page 49: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/49.jpg)
Pseudo-code for insert(k,v)Algorithm insert(k,v):
Input: Key k and value vOutput: Topmost position of the entry inserted in the listp ← skipSearch(k);q ← null;e ← (k,v);i ← −1;repeat
i ← i + 1;if i ≥ h then
h ← h + 1; // add a new level to the skip list t ← after(s); // s is Sh.begin() s ← insertAfterAbove(null,s,(−∞,null));insertAfterAbove(s,t,(+∞,null));
end ifwhile above(p) = null do
p ← before(p); //scan backwardp ← above(p); //jump up to higher level q ← insertAfterAbove(p,q,e); //add to the new tower
end while until coinFlip() = tails;n ← n + 1;return q;
![Page 50: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/50.jpg)
Exercise
1. Insert key 22 (show the visited nodes and links)
2. Insert for key 57 (show the visited nodes and links)
12–∞ +∞17 20 25 38 39 44 50 55
12–∞ +∞17 25 38 44 55
–∞ +∞17 25 55
–∞ +∞17 55
–∞ +∞17
–∞ +∞
S0
S1
S2
S3
S4
S5
![Page 51: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/51.jpg)
Space analysis
Fact 1:The probability of i consecutive heads by flipping a coin is 1/2i
Fact 2: If each of n items is present in a set with probability P, the expected
size of the set is nP
By Fact 1: we insert an item in list Si with probability 1/2i
# of nodes =
By Fact 2: the expected size of list Si is n/2i , where n is the # of items
∑h
i = 0
n2i
= ∑h
i = 0
n 2–i < 2n
< 1
= 2n 1 –1
2h+1
![Page 52: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/52.jpg)
Space analysis
Space is O(n)
# of nodes = ∑h
i = 0
n2i
= ∑h
i = 0
n 2–i < 2n
< 1
= 2n 1 –1
2h+1
![Page 53: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/53.jpg)
Time analysis (find)
Fact 3: The expected number of coin tosses required to get tails is 2
Two things are accounted for time analysis: 1. the number of drop-down steps, plus 2. the number of scan-forward steps
Drop-down: O(h) = O(log n)
Scan-forward: O(log n) = O(1) (fact 3) for each O(log n) levels
Expected time is O(log n)
![Page 54: Skip Lists - Texas A&M University · 2020. 8. 11. · Skip List 1. A list of h+1 lists S h ⊆ S h–1 ⊆ … ⊆ S 1 ⊆ S 0 2. h is the height of the skip list 3. S i+1 has roughly](https://reader035.fdocuments.us/reader035/viewer/2022071513/61343788dfd10f4dd73b96dc/html5/thumbnails/54.jpg)
A skip list is a data structure for dictionaries
Randomized insertion algorithm
In a skip list with n items
The expected space used is O(n)
The expected search, insertion and deletion time is O(log n)
Skip lists are fast and simple to implement in practice
Summary