One cheat sheet OK. But be sure to submit it together with the exam papers. Or you will get 20 points deducted. Let me know at the beginning of the exam if you don’t have a cheat sheet. Review homework problems, lecture notes, in-class examples or after-class exercises. 1. Asymptotic notations, O, Omega, Theta. Their definitions. The proofs according to the definitions. 2. Given a piece of code, analyze the running time. 3. Sorting algorithms. Understand the logic and the algorithm (pseudo-codes). Running time analysis of the three sorting algorithms. Worst-case, best-case, average-case for two of them. Quick sort is the most important one. 4. Definitions and properties of tree. Related concepts. The relationship between the tree size and tree height. 5. Definitions of BST and AVL. 6. Operations/algorithms defined on BSTs: insertion, deletion, search, traversal etc. Application of BST. For example, create a database using BST. Show the BST for the given data set. 7. Running times of the above operations. For BST, what is the worst case input? What is the average running time? 8. Operations/algorithms (mainly insertion) on AVL. 9. Write pseudocode for recursive functions about trees. (probably the most challenging problem)