Here are the few helpful links I have come across related to this question:
Link 1
Link 2
Link 3
Link 4
Reading them I have reached to a conclusion that the data structures in the order of "Array > Doubly Linked list > Singly Linked list > File", is better in terms of suitability towards building a cache,
Ans (a)
Reason:
File structure is not suitable for building a cache. File structure is used for data storage, access and retrieval in the disk. Most popular disk organization techniques like B-Tree, B+ Tree are inefficient for cache implementation since they use pointers for indexing tree nodes and leaf nodes.
Singly Linked lists are inefficient way of building a cache. While doubly linked lists are more efficient compared to singly linked lists.
Linked structures like linked lists or trees are generally not friendly to modern processors, because for large data structures that do not fit in cache, following each link usually requires loading a new cache line. Lists have a lot of pointers. Short lists will fit into cache, but long lists won't. So storing large sets in lists tends to result in a lot of cache misses
Arrays are the most efficient way of implementing a cache. It uses locality of reference (mainly spatial) to fill a cache lines. Therefore, results in lesser number of cache misses.
Kindly correct me if I am wrong,