60 likes | 175 Views
Review for Exam 2. Topics covered (since exam 1): Splay Tree K-D Trees RB Tree Priority Queue and Binary Heap B-Tree For each of these data structures Basic idea of data structure and operations Be able to work out small example problems Prove related theorems
E N D
Review for Exam 2 • Topics covered (since exam 1): • Splay Tree • K-D Trees • RB Tree • Priority Queue and Binary Heap • B-Tree • For each of these data structures • Basic idea of data structure and operations • Be able to work out small example problems • Prove related theorems • Asymptotic time performance • Advantages and limitations, comparisons
Review for Exam 2 • Splay tree • Definition (a special BST: balanced in some sense) • Rationale for splaying: amortized performance • Splay operation (bottom up) • Rotation • without grandparent • with grandparent: zig-zag and zig-zig • When to splay (after each operation) • What to splay with find/insert/delete operations • Amortized time performance analysis: what does O(m log n) mean?
Review for Exam 2 • K-D Trees • What K-D trees are used for • Multiple keys • Range queries • How K-D trees differ from the ordinary BST • levels • Be able to do insert and range query/print • Limitations • Hard to do deletion • Difficult to balance
Review for Exam 2 • RB tree • Definition: a BST satisfying 5 conditions • Every node is either red or black. • Root is black • Each NULL pointer is considered to be a black node • If a node is red, then both of its children are black. • Every path from a node to a NULL contains the same number of black nodes. • Theorems leading to O(log n) worst case time performance • Black height • min and max # of nodes a RB tree with bh=k can have • Bottom-up insertion and deletion • When and what to rotate and recolor
Review for Exam 2 • PQ and binary heap • Binary heap • Definition: CBT with a partial order (heap order) • Why it is good for PQ • Heap operations (with array implemention) • findMin, deleteMin, insert • percolateUp (for insertion), percolateDown (for deletion) • Heap construction (heapify starting from the middle), • Heapsort • Time performance of these operations • Leftist tree and leftist heap • Why we need this? • Definition (npl: null path length) • Meld operations and applications • insert, deletMin, heap construction
Review for Exam 2 B-Trees • What is a B-tree • Special M-way search tree (what is a M-way tree) • Internal and external nodes • M and L (half full principle), especial requirement for root • Why need B-tree • Useful/advantageous only when external storage accesses required and why? • Height O(logM N), performances for find/insert/remove • B-tree operations • search • insert (only insert to nonempty leaf, split, split propagation) • Remove (borrow, merge, merge propagation, update ancestors’ keys ) • B-tree design • determining M and L based on the size of key, data element, and disk block