This is a revision of a one-semester survey of combinatorial analysis and graph theory, designed for mathematics and computer science majors. Three principal aspects of combinatorial reasoning are emphasized in this book: the systematic analysis of different possibilities, the exploration of the logical structure of a problem, and ingenuity. Keeping theory to a minimum, it uses numerical examples to demonstrate the combinatorial reasoning involved in computer science, operations research, and finite probability. This edition gives more attention to computer science's use of combinatorics. Includes a new chapter on topics in theoretical computer science, a new section on recursive programs, an enlarged discussion of algorithms to generate combinatorial sets, and additional programming exercises.
This was just an okay textbook. There are sections of this book that are very well written (when you get into the actual start of the Combinatorics section, the author does a fantastic job of introducing the subject, provides a LOT of examples, and really does a great job of explaining what is a tough subject to many people.
But there are sections that are just terribly done. The section on non-homogeous recurrence relations was very vague, and the examples were a bit poor. The early sections covering edge and vertex covers also weren't very well explained (especially given that easier solutions using logic formulas exist).
So, overall, not a terrible book, but it could definitely use some improvement.