Академический Документы
Профессиональный Документы
Культура Документы
Balanced Trees
CSCI 2720 Spring 2007
Outline
Balanced Search Trees
2-3 Trees 2-3-4 Trees Red-Black Trees
CSCI 2720
Slide 2
Why care about advanced implementations? Same entries, different insertion sequence:
2-3 Trees
Features each internal node has either 2 or 3 children
CSCI 2720
Slide 4
CSCI 2720
Slide 6
CSCI 2720
Slide 8
CSCI 2720
Slide 9
2-3 Tree
CSCI 2720
Slide 10
Inserting Items
Insert 39
CSCI 2720
Slide 11
Inserting Items
Insert 38
divide leaf and move middle value up to parent
insert in leaf
result
CSCI 2720
Slide 12
Inserting Items
Insert 37
CSCI 2720
Slide 13
Inserting Items
Insert 36
divide leaf and move middle value up to parent
insert in leaf
overcrowded node
CSCI 2720
Slide 14
Inserting Items
... still inserting 36
divide overcrowded node, move middle value up to parent, attach children to smallest and largest result
CSCI 2720
Slide 15
Inserting Items
After Insertion of 35, 34, 33
CSCI 2720
Slide 16
Inserting so far
CSCI 2720
Slide 17
Inserting so far
CSCI 2720
Slide 18
Inserting Items
How do we insert 32?
CSCI 2720
Slide 19
Inserting Items
creating a new root if necessary tree grows at the root
CSCI 2720
Slide 20
Inserting Items
Final Result
CSCI 2720
Slide 21
Deleting Items
Delete 70
70
80
CSCI 2720
Slide 22
Deleting Items
Deleting 70: swap 70 with inorder successor (80)
CSCI 2720
Slide 23
Deleting Items
Deleting 70: ... get rid of 70
CSCI 2720
Slide 24
Deleting Items
Result
CSCI 2720
Slide 25
Deleting Items
Delete 100
CSCI 2720
Slide 26
Deleting Items
Deleting 100
CSCI 2720
Slide 27
Deleting Items
Result
CSCI 2720
Slide 28
Deleting Items
Delete 80
CSCI 2720
Slide 29
Deleting Items
Deleting 80 ...
CSCI 2720
Slide 30
Deleting Items
Deleting 80 ...
CSCI 2720
Slide 31
Deleting Items
Deleting 80 ...
CSCI 2720
Slide 32
Deleting Items
Final Result
CSCI 2720
Slide 33
Deletion Algorithm I
Deleting item I:
CSCI 2720
Slide 34
Deletion Algorithm II
Redistribution
A sibling has 2 items: redistribute item between siblings and parent
Merging
No sibling has 2 items: merge node move item from parent to sibling
CSCI 2720
Slide 35
Merging
Redistribution not possible: merge node move item from parent to sibling adopt child of n If n's parent ends up without item, apply process recursively
CSCI 2720
Slide 36
Deletion Algorithm IV
If merging process reaches the root and root is without item delete root
CSCI 2720
Slide 37
CSCI 2720
Slide 38
2-3-4 Trees
similar to 2-3 trees 4-nodes can have 3 items and 4 children
4-node
CSCI 2720
Slide 39
CSCI 2720
Slide 40
CSCI 2720
Slide 41
CSCI 2720
Slide 42
... 90 ...
CSCI 2720
Slide 46
CSCI 2720
Slide 48
CSCI 2720
Slide 49
CSCI 2720
Slide 50
CSCI 2720
Slide 51
Strategy
on the way from the root down to the leaf: turn 2-nodes (except root) into 3-nodes deletion can be done in one pass
(remember: in 2-3 trees, a reverse pass might be necessary)
CSCI 2720
Slide 52
30 50
20 50
10 20
40
"rotation"
10
30 40
25
25
CSCI 2720
Slide 53
30 50
50
10
40
merging
10 30 40
25
35
25
35
CSCI 2720
Slide 54
CSCI 2720
Slide 55
Red-Black Tree
binary-search-tree representation of 2-3-4 tree
CSCI 2720
Slide 56
CSCI 2720
Slide 57
CSCI 2720
Slide 58
CSCI 2720
Slide 59
CSCI 2720
Slide 60
Traversals same as in binary search trees Insertion and Deletion analog to 2-3-4 tree need to split 4-nodes need to merge 2-nodes
CSCI 2720
Slide 61
CSCI 2720
Slide 62
CSCI 2720
Slide 63
CSCI 2720
Slide 64
CSCI 2720
Slide 65
CSCI 2720
Slide 66