The Design and Analysis of computer Algorithms - Alfred V. Aho; Jeffrey D. ullaman; Jahn E. Hopcroft (Person, 2001)