Thisbook is a self-teaching introduction to the basic concepts of algorithm designand analysis. It covers basic topics such as strings, trees, patterns, andgraphs, but also includes advanced algorithms and provides lab exercises andnumerous end-of-chapter exercises with answers, to test comprehension of thematerial.