Computer Science 226
Algorithms and Data Structures
Fall 2005


Course Information | Assignments | Exercises | Lectures

SCHEDULE OF LECTURES

Here is a tentative list of lectures and the slides 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 the online handouts. An effective strategy is to look over the indicated chapter before the lecture, then read it in detail soon afterwards.

# LECTURE NOTES CHAPTER BOOKSITE DEMOS
1 Union-find 1 5.3
2 Stacks and queues 3-4 2.6
3 Analysis of algorithms 2
Elementary sorts 6 3.1
4 Efficient sorts 7-8 3.2   3.3 merging   partitioning
5 Sorting applications - 3.5
6 Priority queues 9 3.4
7 Lists and iterators - 2.7 Preorder traversal
Elementary symbol tables 12 4.1
8 Hashing 14 4.2
9 Symbol table applications - 4.5
Binary search trees 12 4.3 Growing Tree Tool
10 Balanced search trees 12 4.4 Growing Tree Tool
11 Radix sorts 6.1 3-way partitioning
12 Tries 15 6.2
13 Midterm
14 String searching 19* 6.3 DFA   KMP  
15 Data compression 22* 6.5 Huffman   LZW
16 Geometric algorithms 24-25* 7.1   7.2   7.5 convex hulls   Voronoi
17 Geometric searching 26-27* 7.3   7.4 sweep line intersection   applications
18 Undirected graphs 17-18 5.1 DFS   BFS   Euler   maze
19 Minimum spanning trees 20 5.4 Graph applet   applications
20 Directed graphs 19 5.2 DFS   topological sort   PERT
21 Shortest paths 21 5.5 Dijkstra
22 Linear programming article 8.4  
23 Regular expressions in-class handout 6.4  
24 Reductions - 8.5  

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. We have only begun to build the booksite, but you might find it useful since it contains links to the Java code from lecture.


Copyright © 2005, Bob Sedgewick and Kevin Wayne.