The design and analysis of computer algorithms - Aho, Alfred V.
3rd reprinting June 1976.