Loading...

Data Structures and Algorithms in C++, 2nd Edition

ISBN: 978-1-118-13663-8

August 2011

736 pages

Description
This second edition of Data Structures and Algorithms in C++ is designed to provide an introduction to data structures and algorithms, including their design, analysis, and implementation. The authors offer an introduction to object-oriented design with C++ and design patterns, including the use of class inheritance and generic programming through class and function templates, and retain a consistent object-oriented viewpoint throughout the book.

This is a “sister” book to Goodrich & Tamassia’s Data Structures and Algorithms in Java, but uses C++ as the basis language instead of Java. This C++ version retains the same pedagogical approach and general structure as the Java version so schools that teach data structures in both C++ and Java can share the same core syllabus.

In terms of curricula based on the IEEE/ACM 2001 Computing Curriculum, this book is appropriate for use in the courses CS102 (I/O/B versions), CS103 (I/O/B versions), CS111 (A version), and CS112 (A/I/O/F/H versions).

About the Author

Michael Goodrich received his Ph.D. in computer science from Purdue University in 1987. He is currently a professor in the Department of Computer Science at University of California, Irvine. Previously, he was a professor at Johns Hopkins University. He is an editor for the International Journal of Computational Geometry & Applications and Journal of Graph Algorithms and Applications.

Roberto Tamassia received his Ph.D. in Electrical and Computer Engineering from the University of Illinois at Urbana-Champaign in 1988. He is currently a professor in the Department of Computer Science at Brown University. He is editor-in-chief for the Journal of Graph Algorithms and Applications and an editor for Computational Geometry: Theory and Applications. He previously served on the editorial board of IEEE Transactions on Computers.

New to Edition
  • Enhanced consistency with the C++ Standard Template Library (STL), and expanded usage of STL data structures as a basis for designing more complex data structures.
  • Improved consistency with modern C++ coding standards in presenting code fragments.
  • Simplification of many of the code fragments, focusing on the principal structure and functionality of the data structures.
  • More examples and discussion of data structure and algorithm analysis.
  • Enhanced the discussion of algorithmic design techniques, like dynamic programming and the greedy method.
Features
  • Consistent object-oriented viewpoint throughout the book.
  • Detailed explanation and visualization of sorting algorithms.
  • Coverage of graph algorithms and pattern-matching algorithms for more advanced CS2 courses.
  • Visual justifications (that is, picture proofs), which make mathematical arguments more understandable for students, appealing to visual learners.
  • Motivation of algorithmic concepts with Internet-related applications, such as Web browsers and search engines.
  • Accompanying web site with a special password-protected area for instructors.