Data Structures and Algorithms by John Beidler