Topic List for the Final Examination in CSE 373, Spring 2004

The format for the final exam will be very similar to that of the midterm exam; there will be a first part consisting of multiple-choice questions, and a second part that involves writing out answers. Bring a standard answer sheet ("scantron" form) and some number two pencils. You might want to bring an extra form, in case you can sell it to a forgetful classmate at a modest profit ;-)

The final exam will cover the topics listed for Quiz 1, plus the following:

AVL trees, including insertion, single and double rotations
    (but not deletion).

Document comparison by taking the dot product of two vectors, where
    each vector gives the number of occurrences of each word in
    the corresponding document.

B-tree insertion, including splitting nodes during insertion,
    (but you are not responsible for deletion or coalescing nodes 
    during deletion).

Sorting concepts, including the compare-exchange operation, stability,
    time and space considerations.

Specific sorting algorithms: bubble sort, Heapsort, Mergesort,
    Quicksort, and Radix sort.

UNION-FIND abstract data type implemented with Uptrees;
    heuristics for optimizing performance of these operations,
    including path compression.  Its applications in
    maze construction and finding the connected components of
    an undirected graph.

Directed and undirected graphs, and weighted graphs.
    Graph representation with adjacency lists and with
    adjacency matrices.

Spanning trees and minimum spanning trees for weighted
    undirected graphs.

Depth-first search in a graph, and breadth-first search in a graph.

Dijkstra's algorithm for the shortest paths from one vertex of
    a directed (or undirected) graph to each of the other vertices.

The Floyd-Warshall algorithm for finding the shortest paths
    between all pairs of vertices of a directed (or undirected) graph.

Topological ordering and topological sorting of the vertices
    of a directed acyclic graph.