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. RedBlack 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: kdtrees  explanations, template files; written homework (here)
 Week 6: String matching. The finite automaton approach. The AhoCorasick 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.