Design and analysis of computer algorithms - Aho, Alfred V (Addisson -Wesley, 2000)