  We present a general method for de-amortizing essentially any Binary Search
Tree (BST) algorithm. In particular, by transforming Splay Trees, our method
produces a BST that has the same asymptotic cost as Splay Trees on any access
sequence while performing each search in O(log n) worst case time. By
transforming Multi-Splay Trees, we obtain a BST that is O(log log n)
competitive, satisfies the scanning theorem, the static optimality theorem, the
static finger theorem, the working set theorem, and performs each search in
O(log n) worst case time. Moreover, we prove that if there is a dynamically
optimal BST algorithm, then there is a dynamically optimal BST algorithm that
answers every search in O(log n) worst case time.
