Like AVL and Red-Black Trees, Splay tree is also self-balancing BST. The main idea of splay
tree is to bring the recently accessed item to root of the tree, this makes the recently searched
item to be accessible in O(1) time if accessed again. The idea is to use locality of reference (In a
typical application, 80% of the access are to 20% of the items). Imagine a situation where we have
millions or billions of keys and only few of them are accessed frequently, which is very likely in
many practical applications.