Data Structures and Algorithms
Slides and Course Notes
Note that URLs of additional (preliminary) information
will be posted on the mailing list.
- October 20,22: Introduction, graph notation, and graph representation (updated Oct. 24).
- October 27,29: Graph traversal (BFS, DFS) (updated Nov. 3).
BFS is explained in a similar way in most textbooks.
The strongly connected component algorithm in Kurt Mehlhorn's book
is very similar to our presentation.
- October 29-Nov 5: Shortest Paths (updated Nov. 13) (1up .ps).
The van Emde Boas data structure is described in this paper by Mehlhorn and Näher. The tuned implementation is described here.
Another description giving a priority queue
- November 10: Basic Maximum Flows. Slides by Kurt Mehlhorn.. The basic concepts and algorithms can be found in Sections 4.9.1 and 4.9.2 of
Kurt Mehlhorn's book. The smallest examples of graphs where the Ford-Fulkerson algorithm may not terminate.
- November 12: Dinitz algorithm. slides for maximum flow (replaces Kurt Mehlhorn's slides except for the "basic stuff" up to Ford Fulkerson) (1up .ps).
The paper and slides (1up .ps) on optimal multicasting.
- November 17,19: Max. Flow using Preflow Push.
Our treatment of the preflow-push algorithm follows
Cheriyan and Mehlhorn, IPL, 69:239-242, 1999 respectively the LEDA book.
Other good descriptions are in [Cormen Leiserson Rivest] and
[Ahuha, Magnanti Orlin].
- November 24: String matching. Slides (1up .ps). More details by Juha Kärkkäinen.
- November 26: String sorting. Slides for string and suffix sorting (1up .ps). More details by Juha Kärkkäinen.
- December 1: Suffix sorting. A paper describing the algortihm. Some more slides:
finding lcps and constructing suffix trees (1up .ps).
- December 3: Hashing (1up .ps).
- December 8: Minimum Spanning Trees (1up .ps).
- January 5: Planar Convex Hull, definitions, slow convex hull algorithm, Graham's scan, Jarvis's march, Chan's algorithm. (from Chapter 1, "Computational Geometry" by
Mark de Berg et al. Chan's algorithm can be found in "Optimal
output-sensitive convex hull algorithms in two and three dimensions",
Discrete and Computational Geometry, 16, 1996,
- January 7: Line Segment Intersection, Convex Polygon Intersection (from
Chapter 8, "Data structures and Algorithms" by Kurt Mehlhorn.) Notes
- January 12: Half-plane intersection, Linear Programming in 2 dimensions: deterministic incremental algorithm and randomized algorithm (from
Chapter 4, Computational Geometry by Mark de Berg et al.) Notes
- January 14: Randomized incremental algorithm for 2 dimensional linear
programming (contd. from last lecture), Randomized incremental algorithm
for smallest enclosing disc, Introduction to point-line duality.
( from Chapter 4, Computational Geometry by Mark de Berg et al.) Notes
- January 19: Voronoi Diagrams: definitions, properties, Fortune's algorithm
Chapter 7, Computational Geometry by Mark de Berg et al.) Notes
- January 21: Fortune's algorithm (contd.), Doubly connected edge lists,
Delaunay triangulation: definition, properties.
Chapters 2, 7, and 9 Computational Geometry by Mark de Berg et al.) Notes
- January 26: Randomized incremental algorithm for Delaunay triangulation,
relation between Delaunay triangulation and 3-D lower convex hull.
Chapter 9, Computational Geometry by Mark de Berg et al.) Notes
- January 28: Planar point location: Randomized incremental algorithm
Chapter 6, Computational Geometry by Mark de Berg et al.) Notes
- February 2-9,16-18: Optimization (1up .ps) The old lecture notes
are mostly superseded by the manuscript, except for the Section on greedy algorithms.
- February 11: Guest lecture by Rene Beier: The Knapsack Problem.
slides: ps pdf,
Assignment 1 -
Assignment 2 -
Assignment 3 -
Assignment 4 -
Assignment 5 -
Assignment 6 -
Midterm practice (not returned)
Assignment 7 -
Assignment 8 -
Assignment 10 - Solutions
Assignment 11 -
Assignment 12 -
Final practice (not returned) -
Midterm exam with solutions -
Final exam with solutions -
- K. Mehlhorn.
Data Structures and Efficient Algorithms, Vol. 1-3.
Springer Verlag, EATCS Monographs, 1984.
- T. H. Cormen, C. E. Leiserson, and R. L. Rivest.
Introduction to Algorithms. MIT Press 1990.
- K. Mehlhorn and S. Näher.
The LEDA Platform of Combinatorial and Geometric Computing.
Cambridge University Press, 1999.
- R. K. Ahuja, R. L. Magnanti, and J. B. Orlin.
Network Flows. Prentice Hall 1993.
- R. E. Tarjan. Data Structures and Network Algorithms. SIAM 1983.