Design, analysis, implementation and comparison of efficient data structures for common abstract data types. Priority queues: heaps and mergeable heaps. Dictionaries: balanced binary search trees, B-trees, hashing. Amortization: data structures for managing dynamic tables and disjoint sets. Data structures for representing graphs. Graph searches.
CSCB36H3 and [CGPA of at least 3.0, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]