This is a list of topics and concepts intended to help you study
for the exam. It is intended to be reasonably complete, but there
could be material covered on the exam that is not listed here. The
ultimate guide to what will be on the exam is your notes and the textbook.
Note that you will need to be implicitly familiar with some earlier topics
(such as how to program with C++ classes) even though you will not be asked
any explicit questions about them.
Linked Listsimplementation (nodes and pointer manipulations)applications implement queue,stack, etc. alternative to array when to use (versus array) variants with header node circular doubly-linked |
Treesbasic definitionsimplementation options (nodes, arrays) recursive structure/algorithms traversal (pre-, in-, post-order) binary search trees AVL trees balancing rotation Searching and SortingMeasuring efficiency (O(n2), O(n log n), etc.) |
Review problems: 4.2.3, 4.2.5, 4.3.9, 4.5.12abdg, 5.1.4, 5.1.5,
5.1.9, 5.1.10, 5.1.13,
BTree method, BTree::isComplete(), which returns
1 if the object is a complete binary tree, and 0 otherwise. (Hint:
recursion really does make this easier.)