Splay trees are self-adjusting binary search trees that improve access speed for frequently accessed nodes. They achieve this by moving recently accessed nodes closer to the root through rotations. The splay tree algorithm was developed in 1985 and offers logarithmic-time performance on average. It is well-suited for applications like network routing that see frequent repeats of certain data accesses. Splay trees perform surgery on the tree through six different rotation operations called splaying steps. The appropriate step depends on whether the node has a grandparent and its position relative to its parent and grandparent.