Design and analysis of computer algorithms - Aho, Alfred V.; Hopcroft, John E.; Ullman, Jeffrey D.