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 2.75 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POSt for which this course is needed to satisfy program requirements]]