Question 3: Self-Organizing Lists and caching [10]

Suppose we decide to create a searchable data structure to hold a collection of N integer data values, where the data structure has the following properties:

Write a search routine that will look for an item (in the cache and/or main collection, as appropriate) which has data value v. Clearly state any assumptions you need to make.