Transcript here

Review for Exam 2
• Topics covered (since exam 1):
–
–
–
–
–
–
General trees
Binary Search Trees (BST)
Splay Tree
K-D Trees
RB Tree
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
Review for Exam 2
• General tree
–
–
–
–
Definition
Internal and external nodes
Height and depth, path length
Tree storage methods and their nodes
• Binary trees
– Full, complete and perfect binary trees and their
properties
– 4 different orders of tree traversals
Review for Exam 2
• BST
– Definition
– Basic operations and their implementations
•
•
•
•
•
Find/contains,
findMin,
findMax
insert,
remove,
– Time performance of these operations
– Problems with unbalanced BST (degeneration)
Review for Exam 2
• Splay tree
– Definition (a special BST: balanced in some sense)
– Rationale for splaying: amortized performance
– Splay operation (bottom up)
• Root
• 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
– How K-D trees differ from the ordinary BST
• levels
– Be able to do insert and range query/print
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
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
• Why so?
• Height O(logM N), so are 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)