View on GitHub

homepage

Here are my lecture notes for CS61B, Data Structures. Notice anything different?

Content Leading Up to Midterm 1

Lecture 1 - Welcome to 61B

Lecture 2 - Our first Java program

Lecture 3 - Pointers, containers, and destruction

Lecture 4 - Recursion and iteration

Lecture 5 - Arrays

Lecture 6 - Sorting

Lecture 7 - Object-Oriented Programming

Lecture 8 - Object-Oriented Mechanisms

Lecture 9 - Abstract Classes and Interfaces

Lecture 10 - Review

Lecture 11 - Comparable

Lecture 12 - Default Constructors and Exceptions

Lecture 13 - Packages and Access Modifiers

Lecture 14 - Integer representation and Bit shifting

Content Leading Up to Midterm 2

Lecture 16 - Algorithmic Complexity

Lecture 17 - Collections interface

Lecture 18 - Sequences

Lecture 19 - Sequences II

Lecture 20 - Trees

Lecture 21 - BST and Tree Searching

Lecture 22 - Game Trees

Lecture 23 - Priority Queues

Lecture 24 - Hashing

Lecture 25 - Generics

The Home Stretch: Content Leading Up to Final

Lecture 26 - Sorting, Part 1

Lecture 27 was a review Q&A for Midterm 2. There are no notes for it.

Lecture 28 - Sorting, Part 2

Lecture 29 - Sorting, Part 3

Lecture 30 - Balanced Search Structures, Part 1

Lecture 31 - Balanced Search Structures, Part 2

Lecture 32 - Git fundamentals

Lecture 33 - Graphs

Lecture 34 - Shortest Paths

Lecture 35 - Random Sequences and Pseudorandomness

Lecture 36 - Dynamic Programming

Lecture 37 - Threads and Garbage Collection

Lecture 38 was a continuation of Lecture 37

Lecture 39 - Compression

Lecture 40 - Conclusion

CSJ61B: The Josh Hug version of CS61B

This section will be periodically updated with choice lectures from Josh Hug’s version of CS61B (as taught in Spring 2019)

Lecture 4 - Linked Lists, Nested Classes and Sentinel Nodes

Lecture 5 - Doubly Linked Lists, Arrays

Lecture 13 - Asymptotics and Algorithm Analysis

Lecture 15 - Asymptotics Examples

Lecture 18 - Red-Black Trees

Lecture 19 - Hashing