1.1 Backtracking
1.2 Advantages and disadvantages
2.1 Generic Classes and Type Parameters
3.1 Big-Oh notation, properties of Big-Oh
3.2 Complexity analysis of Java Collections: ArrayList, LinkedList, Stack, Dequeue, Set, Map, Hash Table
3.3 Analysis of main search and sorting algorithms
4.1 Path traversal algorithms: pre-order, in-order, and post-order
4.2 Algorithms for insertion, removal, search
4.3 Balanced search trees
5.1 Heap sort algorithm
6.1 Data structures for graphs: adjacency matrix, list and map, edge list
6.2 Transitive closure of a graph: Floyd Warshall?s algorithm
6.3 Graph Traversals: Breadth-first, Depth-first
6.4 Strong Components of a Digraph - Kosaraju algorithm
6.5 Shortest path: Dijkstra and Bellman Ford algorithms
6.6 Topological Sort
6.7 Graph cycles: Hierholzer and Fleury algorithms
6.8 Minimum Spanning Trees: Kruskal and Prim algorithms
6.9 Maximum Network Flow, Ford-Fulkerson algorithm