Overview
This course covers algorithm analysis, sorting techniques like mergesort, data structures such as linked lists, stacks, trees (including binary search trees and AVL trees), graphs, and hash tables. Students will learn how to analyze algorithms, implement various data structures, and understand graph theory concepts. The teaching method includes lectures, discussions, and hands-on programming assignments. This course is intended for students interested in gaining a deeper understanding of data structures and algorithms in computer science.
Syllabus
Templates.
Algorithm Analysis.
Sorting (Part 1).
Mergesort analysis.
Sorting (Part 2).
Linked Lists.
Stacks.
Tree Traversal.
Binary search trees.
BST node removal.
AVL Trees (Part I).
AVL Double Rotation.
Graph Basics.
Path lengths.
Acyclic Graphs.
Centrality.
Depth-first search.
Introduction to Hash Tables.
More Hashing.
Taught by
Jonathan Anderson Cantab