Agorithms and data structures : design, correctness, analysis Jeffrey H. Kingston (Addison Wesley, 1990)