some algorithms:
  get k-th max element;
  stack with min() element in O(1)
  LinkedList iterative reverse