Text:       "Data  Structures and Algorithms in Java", 
            Drozdek, Brooks/Cole, 2001.

            Additional review handouts/problem solutions as necessary.

Midterm exam:   October 19 (one page of notes).

Final exam:     December 20, 12-3PM ** (one page of notes)

** may be changed to an earlier date


                                List of Topics

    Algorithm analysis issues and techniques; stacks, queues,  
    linked lists.

    Trees; representations, traversals. Search trees, balanced 
    trees. Heaps, Binomial Heaps.

    Sorting; quicksort, heapsort, efficiency bounds. Merging  
    ordered lists.

    Algorithm techniques: divide-and-conquer, dynamic  programming,
    optimal binary search trees. External search; B-Trees.

    Hashing.

    Graph representations and traversals, depth-first and breadth-first
    search. Graph  algorithms; minimum spanning trees, shortest paths.
    Union-find; application to minimum spanning tree.

    There will be two reasonably difficult programming assignments
    in Java.