TOPICS previous material: big-Oh, algorithm analysis using lists, stacks, queues, priority queues, hashtables (sets or maps) binary trees: recursive methods, pre/in/post-order traversals, predecessor/successor binary search trees: definition, find, insert, remove AVL trees: balance factors, rotations, insertion w/ balancing sorting: pros/cons (space/time, best/average/worst, etc.) for insertion sort, merge sort, quick sort, bucket sort choice of pivots for quick sort, concept of partitioning graphs: pros/cons of adjacency matrix, adjacency list DFS/BFS. stack vs. queue, keeping track of paths, avoiding already visited other search extensions, e.g. topological sort, strong connectivity how to formulate a problem into a graph dijkstra's algorithm. what it does, algorithm analysis of. minimum spanning tree. prim's, kruskal's. harder graph problems supplemental topics: concepts behind b-trees data structures & algorithms and their role in internet-scale computing SOME SPECIFIC PROBLEMS TO EXPECT given a real-world problem, what data structures or algorithms to use and why? given two data structures or algorithms, what are the pros/cons of using one over the other? show the result after performing an insertion (possibly involving rotations) on an AVL tree given an undirected graph, show the order of vertices added through Prim's algorithm. show the order of edges added through Kruskal's algorithm. (basically simulating the algorithms) show how a problem can be phrased as a graph and can be solved with modifications of graph algorithms coding problem involving binary search trees coding problem involving graphs a question or two reinforcing concepts addressed on hws/prjs