# 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

- Overview
- Shortest path: Dijkstra’s algorithm, Bellman-Ford algorithm
- Network flows: Ford-Fulkerson and Edmonds-Karp algorithms; max flow–min cut
- Graph theory