Algorithms and Data Structures in C++ introduces modern issues in the theory of algorithms, emphasizing complexity, graphs, parallel processing, and visualization. To accomplish this, the book uses an appropriate subset of frequently utilized and representative algorithms and applications in order to demonstrate the unique and modern aspects of the C++ programming language. What makes this book so valuable is that many complete C++ programs have been compiled and executed on multiple platforms. Each program presented is a stand-alone functional program. A number of applications that exercise significant features of C++, including templates and polymorphisms, is included. The book is a perfect text for computer science and engineering students in traditional algorithms or data structures courses. It will also benefit professionals in all fields of computer science and engineering.
This text is designed for an introductory quarter or semester course in algorithms and data structures for students in engineering and computer science. It will also serve as a reference text for programmers in C++. The book presents algorithms and data structures with heavy emphasis on C++. Every C++ program presented is a stand-alone program. Except as noted, all of the programs in the book have been compiled and executed on multiple platforms.
When used in a course, the students should have access to C++ reference manuals for their particular programming environment. The instructor of the course should strive to describe to the students every line of each program. The prerequisite knowledge for this course should be a minimal understanding of digital logic. A high-level programming language is desirable but not required for more advanced students.
The study of algorithms is a massive field and no single text can do justice to every intricacy or application. The philosophy in this text is to choose an appropriate subset which exercises the unique and more modern aspects of the C++ programming language while providing a stimulating introduction to realistic problems.
I close with special thanks to my friend and colleague, Jeffrey H. Kulick, for his contributions to this manuscript.