Question 2: Skiplists [10]

(i) Suppose we have a program that uses our skiplist algorithms (as discussed in the labs and implemented in assignment 2) to insert N items into a list and then searches for a specific item.

Clearly explain how we could obtain the following different results on two runs of the same program with the same user input:










(ii) Suppose we were to insert value 4 as a level 3 node in the skiplist below. Redraw the skiplist to show the updated pointers.

Lev 4:------------------->*
Lev 3:------------------->*<--->*
Lev 2:------------->*<--->*<--->*
Lev 1:------>*<---->*<--->*<--->*
Node data:   0      1     5     6
(Levels)    (1)    (2)   (4)   (3)