Review for Final Andy Wang Data Structures, Algorithms, and Generic Programming
Final Exam (Wed 12/3) 25%: Lectures %: Lectures %: Lectures
Strings and BitVectors Three characteristics of a proper type Two major advantages of C++ strings over C strings How to set/unset/test nth bit in a char
Hash functions and templates Hash functions Description Properties Three design principles for hashing a sequence of keys Implement simple template classes/functions
Search Algorithms Definition of invariants Big “O” notation (worst case running time)
Linked Lists and Deques List vs. vector vs. deque Implement list operations Why multiple iterators for a given class pContainers vs. aContainers How to compute the size of a deque and why
Stacks and Queues Implement of DFS and BFS in pseudo code How to implement a queue with a stack How to implement a stack with a queue
Function Objects and Generic Algorithms Advantages of function objects Implement generic copy, find, max, sort Running time of generic sort
Iterators and Generic Set Algorithms Types of iterators and when to use what Conceptual understanding of set operations Implement union, intersection, difference, containment, merge
Sets and Maps How to use set operations to find out words not in a dictionary How to use sets to implement maps How to use maps to implement linked lists and trees
Trees 1 Definitions: graph, tree, depth, leaf, binary tree, complete binary tree, partially ordered tree, heap Traversals: preorder, postorder, levelorder, inorder How to use nodes listed in different orders to uniquely identify a tree
Trees 1 Total number of vertices in a complete binary tree Total number of leafs in a complete binary tree What if we have a complete tri- nary tree?
Trees 1 How to use a vector to represent a complete binary tree How do you access parent, left child, and right child? Heap operations Push (bottom up) Pop (top down)
Trees 1 Heap operations Push (bottom up) Pop (top down)
Trees 2 Tree navigators vs. iterators For a complete binary tree, which node is the first node for an inorder traversal? Which node is the last?
Trees 2 For a complete binary tree, which node is the first node for a preorder traversal? Which node is the last?
Trees 2 For a complete binary tree, which node is the first node for a postorder traversal? Which node is the last?
Trees 2 For a complete binary tree, which node is the first node for a levelorder traversal? Which node is the last? How to implement a levelorder binary tree iterator
Trees 3 How to store a tree in a file How to perform node insertion and removal
Trees 4 Definition: totally ordered tree How to perform a binary tree with a binary search tree Best and worst running time of binary search via a binary search tree
Trees 4 How to improve the average running time of binary search via a binary search tree