Algorithms and data structure design, correctness, analysis - Kingston (Addison-Wesley, 1998)