The design and analysis of computer algorithms - Alfred aho (Pearson education, 1974)