Data Structures and Algorithms by Alfred V. Aho, J.D. Ullman & J.E. Hopcroft