CS 234: Data Types and Structures

Lectures

This page contains the order of topics contained in lectures, listed as a sequence of modules. Please note that modules may vary considerably in length and difficulty; please see the schedule for details on timing.

Please see the resources page for additional relevant material, including a document outlining coverage of the material by the (optional) textbook.

Module 1: Introduction

Topics: User and provider viewpoints, planning and coding stages, models, modularity and data hiding, abstract data types, implementations, recipes

Module 2: ADTs and pseudocode analysis

Topics: Choosing and modifying ADTs, compound and static data, ADT Multiset, types of ADTS, pseudocode, analysis, order notation

Module 3: Data structures

Topics: Memory, basic data structures, Python modules for data structures, ADT Set, types of data, bit vector

Module 4: Group B ADTs

Topics: ADT Stack, ADT Queue, linked data structures, ADT Indexed Sequence, ADT Ranking, ADT Grid

Module 5: Trees

Topics: Tree terminology, decision trees, ADT Binary Tree, ADT Ordered Tree, ADT Unordered Tree, implementations, tree traversals

Module 6: Graphs

Topics: Graph terminology, ADT Undirected Graph, ADT Directed Graph, implementations, breadth-first search, depth-first search

Module 7: Dictionaries

Topics: ADT Dictionary, searching, sorting, binary search tree, AVL tree, (2, 3) tree

Module 8: Priority queues

Topics: ADT Priority Queue, heap, heapsort

Module 9: Improvements

Topics: Comparison-based algorithms, decision-tree lower bound, average versus expected, interpolation search, search in a static array, self-organizing heuristics, hashing, bucket sort, radix sort

Module 10: Extensions

Topics: Skip list, graph problems, ADT Disjoint Set, ADT Range, quadtree, k-d tree, strings and tries, other criteria and analysis, memory hierarchy and B-tree