CS 2240

Data Structures and Algorithms

Presented here is a subset of materials for use in CS 2240 Data Structures and Algorithms. What follows is incomplete, and subject to revision, deletion, and rearrangement.

Feedback, including reports of errata, criticisms, suggestions, and proposed revisions, is warmly encouraged.

Preliminaries

Foundations

C++ essentials

Memory; stack and queue; introduction to complexity

Trees

Search and self-balancing trees

Binary heaps and priority queue; d-heaps; introduction to sorting

Sorting: selection, insertion, and merge sort

Sorting: quicksort, bucket and radix sort, heap sort

Binary search and interpolation search; hashing, collisions, and separate chaining

Linear probing, quadratic probing, and double hashing

Sets and relations; the dynamic equivalence problem

Disjoint sets; introduction to graphs; topological sort

Graph algorithms: Dijkstra, Bellman-Ford, Ford-Fulkerson, Edmonds-Karp

Minimum spanning tree: Prim and Kruskal