Skip to content

CS61B Data Structures

Resources

“The difference between a bad programmer and a good one is whether [the programmer] considers code or data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” - Linus Torvalds

Modules

Lecture Checklist

  • 1: Intro, Hello World Java
  • 2: Defining and Using Classes
  • 3: References, Recursion, and Lists
  • 4: SLLists, Nested Classes, Sentinel Nodes
  • 5: DLLists, Arrays
  • 6: ALists, Resizing, vs. SLists
  • 7: Testing
  • 8: Inheritance, Implements
  • 9: Extends, Casting, Higher Order Functions
  • 10: Subtype Polymorphism vs. HoFs
  • 11: Exceptions, Iterators, Object Methods
  • 12: Coding in the Real World, Review
  • 13: Asymptotics I
  • 14: Disjoint Sets
  • 15: Asymptotics II
  • 16: ADTs, Sets, Maps, BSTs
  • 17: B-Trees (2-3, 2-3-4 Trees)
  • 18: Red Black Trees
  • 19: Hashing
  • 20: Heaps and PQs
  • 21: Prefix Operations and Tries
  • 22: Range Searching and Multi-Dimensional Data
  • 23: Tree and Graph Traversals
  • 24: Graph Traversals and Implementations
  • 25: Shortest Paths
  • 26: Minimum Spanning Trees
  • 27: Reductions and Decomposition
  • 29: Basic Sorts
  • 30: Quick Sort
  • 31: Software Engineering I
  • 32: More Quick Sort, Sorting Summary
  • 33: Sorting and Algorithmic Bounds
  • 34: Software Engineering II