Exam 2 Study Guide
Changelog
- 2022-11-12 Create the study guide
- 2022-11-19 Add some LeetCode problems
FAQ
Q: What topics/material am I responsible for?
A: Class material through Depth First Search and assignment 5.
Q: What resources may I use during the exam?
A: As with exam 1, you may bring on 8 1/2 x 11in page of notes. You will hand in your notes with your exam. (I'll give them back--having access when I'm grading means I have an easy way to know why you and your study partner wrote the same answer.)
Q: Will there be a practice/sample exam again?
A: No. Here a couple of relevant LeetCode problems (these don't cover all relevant topics):
Q: What sort of questions will be on the exam?
A: Much like last time, expect to:
- explain trade-offs (why would we do X and not Y in situation ABC?)
- modify one of the algorithms we've seen to solve a problem
- use the data structures we've seen to solve a problem
Definitions/Concepts
- traversals of binary search trees
- pre-order
- in-order
- post-order
- successor/predecessor in a binary search tree
- height of a tree
- graphs (see appendix B.4 in the book)
- undirected graph
- directed graph
- cycle
- DAG: directed acyclic graph
- degree/in-degree/out-degree
- connected component
- complete graph
- bipartite graph
Data Structures
- Binary Search Trees
- Heaps
- Priority Queues
- Graph (directed/undirected)
- adjacency lists
- adjacency matrix
Algorithms
- Heap sort
- Quicksort
- We talked about two different partitioning schemes. I will not ask you about Hoare partitioning.
If you need to implement quicksort on the exam, you may use whatever version you like.
- Counting sort
- Radix Sort
- Bucket Sort
- Breadth-first search
- Depth-first search