Download presentation
Presentation is loading. Please wait.
Published byVernon Carter Modified over 9 years ago
2
Dynamic Dictionaries Primary Operations: get(key) => search put(key, element) => insert remove(key) => delete Additional operations: ascend() get(index) remove(index)
3
Complexity Of Dictionary Operations get(), put() and remove() n is number of elements in dictionary
4
Complexity Of Other Operations ascend(), get(index), remove(index) D is number of buckets
5
The Operation put() 20 10 6 28 15 40 30 25 Put a pair whose key is 35. 35
6
The Operation remove() Three cases: Element is in a leaf. Element is in a degree 1 node. Element is in a degree 2 node.
7
Remove From A Leaf Remove a leaf element. key = 7 20 10 6 28 15 40 30 2535 7 18
8
Remove From A Degree 1 Node Remove from a degree 1 node. key = 40 20 10 6 28 15 40 30 2535 7 18
9
Remove From A Degree 1 Node (contd.) Remove from a degree 1 node. key = 15 20 10 6 28 15 40 30 2535 7 18
10
Remove From A Degree 2 Node Remove from a degree 2 node. key = 10 20 10 6 28 15 40 30 2535 7 18
11
Remove From A Degree 2 Node 20 10 6 28 15 40 30 25 Replace with largest key in left subtree (or smallest in right subtree). 35 7 18
12
Remove From A Degree 2 Node 20 10 6 28 15 40 30 2535 7 18 Replace with largest key in left subtree (or smallest in right subtree).
13
Remove From A Degree 2 Node 20 8 6 28 15 40 30 2535 7 18 Replace with largest key in left subtree (or smallest in right subtree).
14
Remove From A Degree 2 Node 20 8 6 28 15 40 30 25 Largest key must be in a leaf or degree 1 node. 35 7 18
15
Another Remove From A Degree 2 Node Remove from a degree 2 node. key = 20 20 10 6 28 15 40 30 2535 7 18
16
Remove From A Degree 2 Node 20 10 6 28 15 40 30 25 Replace with largest in left subtree. 35 7 18
17
Remove From A Degree 2 Node 20 10 6 28 15 40 30 2535 7 18 Replace with largest in left subtree.
18
Remove From A Degree 2 Node 18 10 6 28 15 40 30 2535 7 18 Replace with largest in left subtree.
19
Remove From A Degree 2 Node 18 10 6 28 15 40 30 25 Complexity is O(height). 35 7
20
Yet Other Operations Priority Queue Motivated Operations: find max and/or min remove max and/or min initialize meld
21
Max And/Or Min Follow rightmost path to max element. Follow leftmost path to min element. Search and/or remove => O(h) time. 20 10 6 28 15 40 30 25
22
Initialize Sort n elements. Initialize search tree. Output in inorder (O(n)). Initialize must take O(n log n) time, because it isn’t possible to sort faster than O(n log n). 20 10 6 28 15 40 30 25
23
Meld 10 6 28 15 5 1 7 17 12 10 6 2 15 8 17 15 127
24
Meld And Merge Merge 2 sorted lists A and B. Create binary search trees for A and B. Meld the trees. Output in inorder. Comparisons 0 f(m,n) 0 So, using meld, we can merge using f(m,n) comparisons.
25
Meld And Merge Worst-case number of comparisons to merge two sorted lists of size n each is n-1. So, complexity of melding two binary search trees of size n each is (n). So, logarithmic time melding isn’t possible.
26
O(log n) Height Trees Full binary trees. Exist only when n = 2 k –1. Complete binary trees. Exist for all n. Cannot insert/delete in O(log n) time. 10 6 28 15 1 + 8 2 16 10 =
27
Balanced Search Trees Height balanced. AVL (Adelson-Velsky and Landis) trees Weight Balanced. Degree Balanced. 2-3 trees 2-3-4 trees red-black trees B-trees
28
AVL Tree binary tree for every node x, define its balance factor balance factor of x = height of left subtree of x – height of right subtree of x balance factor of every node x is – 1, 0, or 1
29
Balance Factors 00 0 0 1 0 0 1 0 1 This is an AVL tree.
30
Height Of An AVL Tree The height of an AVL tree that has n nodes is at most 1.44 log 2 (n+2). The height of every n node binary tree is at least log 2 (n+1). log 2 (n+1) <= height <= 1.44 log 2 (n+2)
31
Proof Of Upper Bound On Height Let N h = min # of nodes in an AVL tree whose height is h. N 0 = 0. N 1 = 1.
32
N h, h > 1 Both L and R are AVL trees. The height of one is h-1. The height of the other is h-2. The subtree whose height is h-1 has N h-1 nodes. The subtree whose height is h-2 has N h-2 nodes. So, N h = N h-1 + N h-2 + 1. LR
33
Fibonacci Numbers F 0 = 0, F 1 = 1. F i = F i-1 + F i-2, i > 1. N 0 = 0, N 1 = 1. N h = N h-1 + N h-2 + 1, i > 1. N h = F h+2 – 1. F i ~ i /sqrt(5). sqrt
34
AVL Search Tree 00 0 0 1 0 0 1 0 1 10 7 83 1 5 30 40 20 25 35 45 60
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.