Final Exam Notes ---------------- Exam will be cumulative, but focus on things not covered on the midterm You're expected to know and understand all of the earlier topics and be able to use them as needed. There *will* be questions on all the data structures seen this year as well as on recursion, Big-O and friends, etc. Don't be surprised at seeing a bunch of Big-O questions about all the data structures we've seen (including best-case and average-case questions). Also fair game are questions relating to the lab assignments. Priority Queues --------------- - Requirements of Keys used in PQs - Various implementations (list, sorted list, heap) - and standard operations - Array based binary heaps (min-heaps) - Linear time construction Hashtables ---------- - Requirements of Keys used in HTs - Hashcodes, mapping to buckets, division of responsibilities - Separate Chaining - Open addressing with probing - linear, quadratic, double hashing - Compression maps - modulus, MAD method Tries ----- - representation and usage - insertion and searching - use as a sorting tool Graphs ------ - Terminology - Directed, undirected, simple, proper ancestor, etc. - Ways of representing - Shortest path calculations - Dijkstra, unweighted BFS, Bellman-Ford - Spanning sub-graphs - Topological sorting Sorting ------- - Selection - Bubble - Insertion - Shell - Heap - Merge - Quick - Radix - Bucket - QuickSelect - Binary search - Limits to sorting speed Java topics ----------- - Various Interfaces - Comparable and Comparator - Set and Map - Serializable - Overriding Object methods - equals(), hashCode() -------------------------------------------------------------------------------- Selection, Insertion, Merge sorting - Lower bound of comparison based sorting Linear and Binary search