### Class log: CS 6301.502: Implementation of advanced data structures and algorithms (Fall 2017)

1 W 8/23 Course introduction
2 F 8/25 Java introduction (see also Java examples)
3 W 8/30 Graph class, iterators
4 F 9/1 Lists, stacks, queues
5 W 9/6 List algorithms, Singly linked lise example
6 F 9/8 Depth-first search: topological sort, strongly connected comp
7 W 9/13 DFS: Bridges and cut vertices, LP1 operations, Recursion
8 F 9/15 Euler tours
9 W 9/20 Algorithm to find Euler tours, Quick sort
10 F 9/22 Select algorithm: find k largest elements
11 W 9/27 Priority queues, Prim's MST algorithm
12 F 9/29 Applications of PQ, Kruskal and Boruvka MST algorithms
13 W 10/4 Trees, Dictionary ADT: Binary search trees
14 F 10/6 BST algorithms, MST in directed graphs (optimal branchings)
15 W 10/11 AVL, Red-Black trees
16 F 10/13 Splay, B trees, Shortest paths: BFS, DAG-shortest paths, Dijkstra
17 W 10/18 Bellman-Ford algorithm for shortest paths, enumeration
18 F 10/20 Skip lists, Hashing
19 W 10/25 Skip lists, Verification algorithms for AVL, RBT
20 F 10/27 Advanced hashing algorithms
21 W 11/1 Hashing, Bloom filters, Multi-dimensional search
22 F 11/3 Maximum flow problem
23 W 11/8 Max-flow algorithms
24 F 11/10 Min-cost flow algorithms, Matching problem in bipartite graphs
25 W 11/15 String algorithms, Tries, Rabin-Karp algorithm
26 F 11/17 KMP, Boyer-Moore algorithms, Suffix trees
27 W 11/29 McCreight/Ukkonen's algorithm, Suffix arrays, GST, DP problems
28 F 12/1 Heuristics for push-relabel flow, DP problems on strings
29 W 12/6 DP problems
Final exam: 5:00-7:00 PM, Wed, Dec 13