CS121 		Data Structure Review
Spring, 98

1. Introduction to Data Structure in C++
   Program Specification, Design, and Analysis
     - Precondition and Postconditions
     - Big-O notation
     - Basic programming control structures (IF, FOR-loop, WHILE-loop)
   ADT and C++ Classes
     - Class definition header file and class implementation file
     - Class application/test file.

2. Container Classes
   Bag and List ADT 
     - Class specifications
   Bag and List Classes Implementations 
     - Array: static memory allocation
     - Linked List (Pointers): dynamic memory allocation

3. Data Structures
   Stack (LIFO)
     - Specification, implementations and applications.
   Queue (FIFO)
     - Specification, implementations and applications.
   Recursive function 
     - Recursive calls
     - Stopping cases
   Binary Tree, Binary Search Tree (and B-tree)
     - Specification, implementations and applications.
     - Tree traversals (In-Order/Post-Order/Pre-Order)

4. Searching and Sorting
   Binary Search (recursive)
     - Algorithm and implementations
   Hashing
     - Algorithm and implementations
     - Dealing with Collisions 
   Bubble sort, Selection sort, Insertion sort (and Heap sort)
     - Algorithm and implementations
     - Performance
   Merge sort and Quick sort (recursive)
     - Algorithm and implementations
     - Performance