CS 212 C++ Data Structures • 5 Cr.
Completes one year sequence with data structures using C++, including lists, hash tables, stacks, queues, trees, and graphs. Contrasts the implementations of such data structures in different languages, specifically the differences between pointers versus references, templates versus generics, dynamic versus static memory allocation, multiple inheritance, and destructors. Prerequisite: CS 211.
After completing this class, students should be able to:Explain and compare the concepts of static and dynamic memory allocation. Apply good memory management practices in data structures, avoiding memory leaks, including destructors. Create and use pointers in linked lists and trees. Explain the parameter passing mechanisms of call by value, call by address, pointer data types, and call by reference. Build applications with efficient data structures such as Stacks and Queues with guaranteed O(N) worst case complexity. Design programs using large Tree data structures. Use Graph theory in problem solving Explain the use of Hash Tables for indexing random access data structures. Demonstrate the difference between C++ templates and Java generics.