A practical introduction to data structures and algorithm analysis - Shaffer