C++ Data Structures: A Laboratory Course, Third Edition exemplifies the active learning experience. With a dynamic learn-by-doing focus, this laboratory manual encourages students to explore data structures by implementing them, a process through which students discover how data structures work and how they are applied. Providing a framework that offers feedback and support, this text challenges students to exercise their creativity in both programming and analysis. Each online laboratory consists of three parts: basic implementation and testing, programming exercises, and analysis exercises, which expertly guide students through every stage and urges them to think critically about their results.

Features & Benefits

All worksheet pages and appendix material are available online for instructors and students to utilize and print as needed.

More sophisticated use of templates is presented. Template specialization is introduced in the Expression Tree. Default template types and template template parameters are introduced in the Heap.

Lab order has been changed to be compatible with the order in most current textbooks.

Each laboratory consists of three parts: basic implementation and testing, programming exercises, and analysis exercises. The basic implementation section explains the specific ADT, introduces the new C++ concepts, describes the ADT's properties, explains implementation details, and guides you through testing your implementation. In the three programming exercises, the first exercises is usually to apply or extend the concepts introduced in the basic implementation. The analysis exercise urges students to analyze a data structure in terms of its efficiency or use.

Laboratory 1 Text ADT

Laboratory 2 BlogEntry ADT

Laboratory 3 Array implementation of the List ADT

Laboratory 4 Ordered List ADT

Laboratory 5 Singly linked list implementation of the List ADT

Laboratory 6 Stack ADT

Laboratory 7 Queue ADT

Laboratory 8 Expression Tree ADT

Laboratory 9 Binary Search Tree ADT

Laboratory 10 Hash Table ADT

Laboratoy 11 Heap ADT

Laboratory 12 Weighted Graph ADT

Laboratory 13 Performance Evaluation

Stefan Brandle, PhD-Taylor University, New York

Stefan Brandle, Ph.D., Taylor University

James Robergé, PhD

James Roberge earned his Ph.D. at Northwestern University. His research interests include medical imaging, computer visualization, and computer science education.

For your convenience, all worksheet pages are now available online. Please print each worksheet as needed. The worksheets are organized by lab beginning with “Laboratory 1: Text ADT” and ending with “Laboratory 13: Performance Evaluation.”

In this new edition, In-Lab Exercises are now called “Programming Exercises” and Post-Lab Exercises are now “Analysis Exercises.” These can still be used as in-lab and post-lab exercises with a closed lab. However, the new titles more accurately reflect how non-laboratory courses can benefit from using these exercises as regular weekly programming assignments.

Each laboratory includes a Cover Sheet with a list of worksheets for the lab. Labs 1-12 contain worksheets for Implementation Testing, Programming Exercises, and Analysis Exercises. Measurement and Analysis Exercises replace Programming Exercises in Lab 13.