Learning Outcomes:
On completion of this module, students will be able to:
- Implement tree data structures and use them in programs.
- Explain how tree balance affects the efficiency of various binary search tree operations.
- Show how different approaches to tree balancing affect the tree structure.
- Describe the heap property and the use of heaps as an implementation of priority queues.
- Solve problems using graph algorithms, including depth-first and breadth-first search, shortest paths, and minimum spanning trees.
- Discuss and contrast how the the runtime and memory efficiency an abstract data type is affected by the choice of implementation strategy.
- Implement simple search algorithms and explain the differences in their time complexities.
- Explain how multiple data structures can be used in concert to solve problems.