Advanced Data Structures
Lecture addressed to second year students of Computer Science. Here are the links to my lecture notes and lab work assignments.
I welcome your feedback to correct any typos/errors you may find in my lecture notes and related material. Check the latest versions of the lecture notes and related material
- Week 1: Lectures 1: Introduction. Binary search trees. Red-Black trees.
Template files: BSTree.zip and RBTree.zip
- Week 2, Lecture 2: Disjoint set structures (slides). Amortized analysis (slides)
- Week 3, Lecture 3: Binomial heaps (slides)
Lab work, template file: binoheap.zip
- Week 4: Computational geometry
- Week 5: More about mergeable heaps (slides).
Programming labwork: kd-trees -- explanations, template files; written homework (here)
- Week 6: String matching. The finite automaton approach. The Aho-Corasick algorithm
- Week 7: Suffix trees. Applications. Slides
Labwork
- Week 8: Sorting in linear and sublinear time. Sorting networks. Counting sort.
- Week 9: Data structures for symbolic computation.
Homework
- Week 10: .
- Week 11: Binary heaps. Heapsort and Quicksort
Homework
- Week 13: Summary.
Last labwork (for those who wish to improve their grade for labwork activity)
- Week 14: Colloquium 2020: answers to the written tests A and B
References
-
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest: Introduction to Algorithms. The MIT Press. 1990.