### Data Structures: Lecture Notes

Lecture 1: Object Oriented Programming in Java.
1/28. Dale, Joyce and Weems, sections 1.3-1.6

Lecture 2: Abstract Methods and Interfaces
1/30. DJW section 2.1. Note: DJW does not discuss abstract methods

Lecture 3: Recursion. 2/4. DJW Chap. 4 except
section 4.6.

Lecture 4: Generics. 2/6. DJW pp. 166-167.

Lecture 5: Linked Lists.
2/11. DJW Chap. 2

Lecture 6: More Lists.
2/13. DJW Chap 7, except 7.1

Lecture 7: More Lists; Stacks; Queues.
DJW sections 3.1, 3.5 (stacks); 5.1, 5.3, 5.6 (queues); 6.7 (lists)
2/20.

Lecture 8: Hash tables. DJW section 10.6.
2/25.

Lecture 9: More on hash functions. 2/27

Second half of lecture 9. (Note: This will not be either on exams
or problem sets.)
Using Hashing for Large Sets of Large Objects

Lecture 10: Trees. 3/4. DJW section 8.1

Lecture 11: More Trees 3/6,

Lecture 12: Breadth-First Search. Binary
Search Trees. 3/8,

3/13 -- 4/1: Review, mid-term, spring break, more review.

Lecture 13: Order of magnitude, worst-case,
asymptotic run-time analysis. 4/3. DJW section 1.7

Lecture 14: Set Operations. Prefix and
postfix notations. 4/8. Postfix notation is in DJW 3.8.

Lecture 14 continued: 4/8
Sorting. Elementary sorts and heapsort. DJW section 10.1, 10.2. Section
10.3 section 704-709.

Lecture 15: 4/10. Mergesort. DJW section 10.3
pp. 690-697

Lecture 16: Quicksort. DJW section 10.3
pp. 698-703

Lecture 17: Linear time sorts. Not in DJW.

Lecture 18: Comparables, DJW 6.1. Graphs

Lecture 19: Exception handling. DJW 168-173

Lecture 20: Iterators.

Lecture 21: 2-3 Trees.

Lecture 22: BTrees.