Print this page Share

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

Data Structures and Algorithms in C++, 2nd Edition (EHEP001657) cover image


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).

See More

Table of Contents

1. A C++ Primer.

1.1 Basic C++ Programming Elements.

1.2 Expressions.

1.3 Control Flow.

1.4 Functions.

1.5 Classes.

1.6 C++ Program and File Organization.

1.7 Writing a C++ Program.

1.8 Exercises.

2. Object-Oriented Design.

2.1 Goals, Principles, and Patterns.

2.2 Inheritance and Polymorphism.

2.3 Templates.

2.4 Exceptions.

2.5 Exercises.

3. Arrays, Linked Lists, and Recursion.

3.1 Using Arrays.

3.2 Singly Linked Lists.

3.3 Doubly Linked Lists.

3.4 Circularly Linked and List Reversal.

3.5 Recursion.

3.6 Exercises.

4. Analysis Tools.

4.1 The Seven Functions Used in This Book.

4.2 Analysis of Algorithms.

4.3 Simple Justification Techniques.

4.4 Exercises.

5. Stacks, Queues, and Deques.

5.1 Stacks.

5.2 Queues.

5.3 Double-Ended Queues.

5.4 Exercises.

6. List and Iterator ADTs.

6.1 Vectors.

6.2 Lists.

6.3 Sequences.

6.4 Case Study: Bubble-Sort on a Sequence.

6.5 Exercises.

7. Trees.

7.1 General Trees.

7.2 Tree Traversal Algorithms.

7.3 Binary Trees.

7.4 Exercises.

8. Heaps and Priority Queues.

8.1 The Priority Queue Abstract Data Type.

8.2 Implementing a Priority Queue with a List.

8.3 Heaps.

8.4 Adaptable Priority Queues.

8.5 Exercises.

9. Hash Tables, Maps, and Skip Lists.

9.1 Maps.

9.2 Hash Tables.

9.3 Ordered Maps.

9.4 Skip Lists.

9.5 Dictionaries.

9.6 Exercises.

10. Search Trees.

10.1 Binary Search Trees.

10.2 AVL Trees.

10.3 Splay Trees.

10.4 (2,4) Trees.

10.5 Red-Black Trees.

10.6 Exercises.

11. Sorting, Sets, and Selection.

11.1 Merge-Sort.

11.2 Quick-Sort.

11.3 Studying Sorting through and Algorithmic Lens.

11.4 Sets and Union/Find Structures.

11.5 Selection.

11.6 Exercises.

12. Strings and Dynamic Programming.

12.1 String Operations.

12.2 Dynamic Programming.

12.3 Pattern Matching Algorithms.

12.4 Text Compression and the Greedy Method.

12.5 Tries.

12.6 Exercises.

13. Graph Algorithms.

13.1 Graphs.

13.2 Data Structures for Graphs.

13.3 Graph Traversals.

13.4 Directed Graphs.

13.5 Shortest Paths.

13.6 Minimum Spanning Trees.

13.7 Exercises.

14. Memory Management and B-Trees.

14.1 Memory Management.

14.2 External Memory and Caching.

14.3 External Searching and B-Trees.

14.4 External-Memory Sorting.

14.5 Exercises.

A Useful Mathematical Facts.



See More

New To This 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.
See More

The Wiley Advantage

  • 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.
See More

Professor Reviews

I found the book very useful and helpful in teaching my course "Data Structure and Program Design". I shall recommend this book to my students. So, may be in the future this book will be the main reference to our students in BUC.

Mrs Lina Ali, Al Buraimi University College


See More
Instructors Resources
Wiley Instructor Companion Site
Solutions Manual
C++ Source Code
Powerpoint Slides
Test Bank
A database of additional exercises, suitable for quizzes and exams.
Instant access to textbooks as eTextbooks.
Learn more
Digital evaluation copy available for this title
Request Copy
Contact your Wiley Representative
Find Your Rep
See More
See Less
Students Resources
Wiley Student Companion Site
C++ Source Code
Powerpoint Slides
Student PDF Handouts
Hints for Students
Instant access to textbooks as eTextbooks.
Learn more
See More
See Less
Purchase Options
Wiley E-Text   
Data Structures and Algorithms in C++, 2nd Edition
ISBN : 978-0-470-46044-3
736 pages
February 2011, ©2009
$62.50   BUY

Data Structures and Algorithms in C++, 2nd Edition
ISBN : 978-0-470-38327-8
736 pages
February 2011, ©2011
$164.95   BUY

Related Titles

Back to Top