Design and analysis of computer algorithms - Aho, Alfred V, et.al (2001)