The self adjusting data structures provides good performance, as it is self-optimizing, in that frequently accessed nodes will move nearer to the root where they can be accessed more quickly. The worst-case height-though unlikely-is , with the average being . Having frequently used nodes near the root is an advantage for many practical applications: particularly useful for implementing caches and garbage collection algorithms.
Possibility of creating a persistent data structure version of splay trees-which allows access to both the previous and new versions after an update. This can be useful in functional programming. Working well with nodes containing identical keys-contrary to other types of self-balancing trees. All tree operations preserve the order of the identical nodes within the tree, which is a property similar to stable sorting algorithms. A carefully designed find operation can return the leftmost or rightmost node of a given key.
The disadvantage of splay trees is that the height of a splay tree can be linear. For example, this will be the case after accessing all elements in ascending order. Since the height of a tree corresponds to the worst-case access time, this means that the actual cost of an operation can be high.