Midterm2
Topics
- ADTs and their use
- For each implementation, understand tradeoffs
- Space efficiency
- Time efficiency
- Is efficiency dependent on number of elements -- think of worst case
- Usability
- Test Plans
- What makes a good test plan
- Black box testing vs. White box testing
- Unsorted List
- Interface
- Implementation Choices
- Array
- Linked List
- Singly linked; doubly linked
- Stack
- Interface
- Implementation Choices
- With List ADT
- Array -- which end for TOS
- Linked List
- Stack algorithms
- RPN evaluation
- Infix to Postfix translation
- Others (programming problems)
- Queue
- Interface
- Implementation Choices
- Circular array (why did we go circular?)
- Linked List (circular or not)
- Queue algorithms
- Designing interfaces
- C++ Programming
- Non-template classes
- Constructors, Destructors, Mutators, Accessors
- Overloading (member) functions
- Overloading operator functions
- C++ mechanism for finding a matching function
- Copy Constructor
- When invoked by C++
- Recognize/identify problems caused by default copy constructor
- How to define our own copy constructor
- function prototype
- what body must do
- dynamic array
- linked list
- Assignment overload
- Stream Insertion overload
- Why it is not a member function
- What is C++ translation mechanism to try and find a matching function
- Template classes
- Need/motivation for template classes
- How to "templatize" a function
- How to "templatize" a class
- Header file
- "Templatizing" all the class functions
- Rules for
- What becomes 'DT' (or other template type)
- What becomes <DT>