review for exam 2 topics covered (since exam 1): –splay tree –k-d trees –rb tree –priority...

6
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 – comparison

Upload: hugo-hancock

Post on 18-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

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– comparison

Page 2: 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

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?

Page 3: 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

• 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

Page 4: 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

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

Page 5: 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

– Binary heap • Definition: CBT with a partial order (heap order)• Why it is good for PQ

– Heap operations (implemented with array)• findMin, deleteMin, insert• percolateUp (for insertion), percolateDown (for deletion)• Heap construction (heapify), • Heap sort

– 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

Page 6: 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

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, pointer, data

element, and disk block

Review for Exam 2