CS 411 Fall 2025 > Final Exam Review Problems
CS 411 Fall 2025
Final Exam Review Problems
Below are some problems you may wish to work through in preparation for the Final Exam. These are not to be turned in. Answers are not available here; however, I would be happy to discuss any of these.
These problems are from the material covered after the Midterm Exam. Since the Final Exam is comprehensive, you may also want to look at the Midterm Exam Review Problems.
- What does CRUD stand for? In what context to we use the term?
- What do we mean by a balanced search tree?
- What is the order of the retrieve (by key) operation for a (general) Binary Search Tree?
- What is the order of the retrieve (by key) operation for an AVL Tree?
- What is the order of the delete (by key) operation for a Red-Black Tree?
- What is the maximum number of keys in a node in a 2-3 Tree?
- Describe the implementations of the following C++ STL
containers:
std::set,std::map,std::unordered_set,std::unordered_map. - When is a balanced search tree preferred to a hash table?
- What is a Binary Heap?
- What is the order of the Heap Delete operation for a Binary Heap?
- What is the order of the Heap Insert operation for a Binary Heap? Explain how memory-management choices may change the answer to this question.
- What is the order of the Make Heap operation for a Binary Heap?
- Give a practical application of a Binary Heap.
- What does the Euclidean Algorithm compute? Explain how it works.
- What is the order of the sorting-by-counting algorithm described in the text?
- What kind of data does a hash table store?
- In the context of hash tables, what is a collision?
- Explain how open hashing and closed hashing differ.
- In the context of hash tables, what is a bucket?
- In the context of hash tables, what is a probe sequence? Describe two or more different probe sequences.
- What is the load factor of a hash table? How is the load factor typically used?
- What is the order of the insert (by key) operation in a typical hash table?
- What is a B-Tree. Describe such a tree in detail.
- What is the order of the three primary key-based operations for a B-Tree? This order is the same as that for other data structures we have looked at; when is a B-Tree preferred to these data structures?
- What is dynamic programming?
- Explain the difference between top-down and bottom-up dynamic programming.
- In the context of dynamic programming, what are overlapping subproblems?
- In the context of dynamic programming, what is a memory function?
- What is an optimization problem?
- In the context of optimization, explain what each of the following mean: feasible solution, objective function, optimal solution, maximization, minimization.
- What does it mean for a function to be deterministic?
- What is the Knapsack Problem.
- In the context of algorithms, what does it mean to be greedy.
- Describe a problem that is efficiently solved by a greedy algorithm.
- How does Prim’s Algorithm work?
- What is the order of Prim’s Algorithm? Explain how certain implementation details affect this order.
- How does Kruskals’s Algorithm work? What specialized data structure is necessary for an efficient implementation of Kruskal’s Algorithm?
- Describe the Union-Find ADT.
- Describe the Quick Union (a.k.a. Disjoint-Set Forest) implementation of Union-Find. What optimizations are commonly used when implementing this data structure?
- Describe Dijkstra’s Algorithm. What problem does this algorithm solve?
- We can turn Prim’s algorithm into Dijkstra’s Algorithm by making a small change. Explain.
- What is an encoding?
- What is a codepoint?
- Briefly explain how UTF-8 works.
- How do we create a Huffman Tree?
- What nice property does a Huffman Tree have?
- What is a Huffman code and what nice property does it have?
- What is the Maximum Flow Problem?
- State the Max-Flow Min-Cut Theorem.
- In the context of network flow, what is an augmenting path?
- What is the order of the augmenting-path method of solving the Maximum Flow Problem?
- The augmenting-path method of solving the Maximum Flow Problem has a nice property when all the edge capacities are integers. Explain.
- What is a bipartite graph?
- What is a matching in a graph?
- What is a vertex cover in a graph?
- What is the Stable Marriage Problem?
- Describe the algorithm covered in class that solves the Stable Marriage Problem.
- Explain how an adversary argument works.
- What is a decision tree?
- What is a decision problem?
- What is a nondeterministic algorithm?
- Explain what the classes \(\mathrm{P}\) and \(\mathrm{NP}\) are.
- Explain the meaning of “polynomially reducible”.
- What does it mean for a decision problem to be \(\mathrm{NP}\)-complete?
- List two \(\mathrm{NP}\)-complete problems.
- Describe the branch-and-bound strategy. When is this strategy used?