CS 2240
Data Structures and Algorithms
Presented here is a subset of materials for use in CS 2240 Data Structures and Algorithms. What follows is incomplete, and subject to revision, deletion, and rearrangement.
Feedback, including reports of errata, criticisms, suggestions, and proposed revisions, is warmly encouraged.
Preliminaries
Foundations
C++ essentials
Memory; stack and queue; introduction to complexity
Trees
Search and self-balancing trees
Binary heaps and priority queue; d-heaps; introduction to sorting
Sorting: selection, insertion, and merge sort
Sorting: quicksort, bucket and radix sort, heap sort
Binary search and interpolation search; hashing, collisions, and separate chaining
Linear probing, quadratic probing, and double hashing
Sets and relations; the dynamic equivalence problem
Disjoint sets; introduction to graphs; topological sort
Graph algorithms: Dijkstra, Bellman-Ford, Ford-Fulkerson, Edmonds-Karp
- Overview
- Shortest path: Dijkstra’s algorithm, Bellman-Ford algorithm
- Network flows: Ford-Fulkerson and Edmonds-Karp algorithms; max flow–min cut
- Graph theory