Computer Science 226
Algorithms and Data Structures
Fall 2004

Course Information | Assignments | Exercises | Lectures


Here are copies of the lecture notes used in class. Students are fully responsible for all material presented in lectures, even if some of it does not appear in these notes. These notes are intended for the lecture presentations; for reference, use the corresponding chapters in Algorithms in Java, Parts 1-5, 3rd edition and Algorithms in C, 2nd edition. An effective strategy is to look over the indicated chapter before the lecture, then read it in detail soon afterwards.

# Lecture Notes Chapter(s) In-class Demos
1 Union-find 1-5 code
2 Elementary sorts 6 code
3 Efficient sorts 7, 8 partitioning   merging   code
4 Priority queues 9 code
5 Elementary symbol tables 12 Intro to CS notes
6 Hashing 14  
7 Binary search trees 12 Growing Tree Tool   code
8 Balanced trees 13 Growing Tree Tool
9 Tries 15 code
10 Radix sorts 10 3-way partitioning   code
11 String searching 19* DFA   KMP   code
12 Data compression 22* Huffman   LZW   code
13 Midterm
14 Geometric algorithms 24*, 25* convex hulls   Voronoi   code
15 Geometric searching 26*, 27* sweep line intersection   applications
16 Undirected graphs 17, 18 DFS   BFS   Euler   maze   code
17 Minimum spanning trees 20 Graph applet   applications
18 Directed graphs 19 DFS   topological sort   PERT   code
19 Shortest paths 21 Dijkstra
20 Max flow, min cut 22 augmenting path   code
21 Linear programming article  
22 Reductions -  
23 Regular expressions handout  
24 Course wrapup article  

The chapters denoted by * are from the second edition, and are available in PDF from the Princeton University network. All other chapters are from the third edition.

Copyright © 2004, Bob Sedgewick and Kevin Wayne.