Transcript PPT
Review for Exam 2
• Topics covered:
–
–
–
–
–
–
Recursion and recursive functions
General rooted trees
Binary Search Trees (BST)
Splay Tree
RB Tree
K-D Trees
• 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
• Recursion
– Recurrence relation, recursive definition and
recursive function
• Base case(s)
• Recursion part
– Related to induction and problem reduction
• Linear recursion, tree recursion and tail recursion
• Good and bad things about recursive function (vs.
iterative function)
• Be able to write recursive functions (in pseudo
code and C++)
Review for Exam 2
• General rooted tree
– Definition
– Height and depth, path length
– Binary and K-ary tree and their nodes
• Binary trees
– Full, complete and perfect binary trees
– Internal and external nodes, IPL, EPL
– 4 different orders of tree traversals
Review for Exam 2
• BST
– Definition
– Basic operations and their implementations
•
•
•
•
•
•
find,
findMin,
findMax
insert,
remove,
makeEmpty
– 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 (data locality)
– Splay operation
• 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
• 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, top-down insertion
– Why top down?
Review for Exam 2
• K-D Trees
– What K-D trees are used for
• Multiple keys
– How K-D tree differs from the ordinary BST
• levels
– Be able to do insert and range query/print