Data Structures and Algorithms
Lecture Materials
Note:
Lecture notes are grouped by topic area, not the date they are given. Each lecture topic can span several days of actual lecture time.
Lecture 1 - Introductions:
slides
printable
Lecture 2 - Algorithm Analysis
slides
printable
Lecture 3 - Algorithm Analysis II
slides
printable
Lecture 4 - Stacks & Queues
slides
printable
Stack.java.html
ArrayStack.java.html
ListStack.java.html
Queue.java.html
ListQueue.java.html
ArrayQueue.java.html
Assert.java.html
Lecture 5 - Lists
slides
printable
List.java.html
ListIterator.java.html
ArrayList.java.html
LinkedList.java.html
Lecture 6: Binary Search Trees
slides
printable
BinarySearchTree.java.html
Lecture 7 - Binary Tree operations slides printable
slides
printable
Node.java
TreeOps.java
Lecture 8 - Heaps & Priority Queues
slides
printable
MinHeap.java.html
Lecture 9 - General Trees
slides
printable
GenNode.java
GenTreeOps.java
Lecture 10 - Quadradic Sorting
slides
printable
Bubblesort
SelectionSort
InsertionSort
Lecture 11 - n log n Sorting
slides
printable
MergeSort
QuickSort
Lecture P2 - Huffman Coding project
slides
printable
Lecture 12 - Non-Comparison Sorting
slides
printable
Lecture 13 - Hash Tables
slides
printable
Lecture 14 - Disjoint Sets
slides
printable
Lecture 15 - Graphs
slides
printable
Lecture 16 - Graph Traversals: BFS & DFS
slides
printable
Lecture 17 - Shortest Pah: Dijkstra's Algorithm
slides
printable
Lecture 18 - Spanning Trees
slides
printable
Lecture 19 - 2-3 Trees and B-Trees
slides
printable
Lecture 20 - Binomial Queues
slides
printable
Lecture 21 - More DFS: Connected Components
slides
printable
Lecture 22 - AVL Trees
slides
printable
Lecture MT2 - Miterm 2 review:
slides
printable
Lecture 23 - Dynamic Programming
slides
printable
Lecture 24 - NP completeness
slides
printable
Lecture 25 - Computational Geometry
slides
printable
Lecture FR - Final Review
slides
printable