Data Structures, Algorithms, & Applications in C++
Chapter 14, Exercise 3

The operation ascend can be done in O(n) time because the level 0 chain is in ascending order. The remaining operations have an expected complexity of O(log n) time.