Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 17 Red-Black Trees

Similar presentations


Presentation on theme: "Lecture 17 Red-Black Trees"— Presentation transcript:

1 Lecture 17 Red-Black Trees
Slides taken from lectures by Prof. Naveen Garg

2 2-4 Tree insert, search, and delete of O(log n)
but nodes are dynamic with 2-4 keys

3 Can we have benefits of 2-4 trees with simple binary nodes?

4 Lets convert 2-4 tree to a binary tree!

5 Stretch it from top and bottom!
g h i j k l n o p q r s u v w x y B C D

6 Red Black Tree b a c e m t A d l o r v y C D g j k n p q s u w x B f h
i

7 Convert the below 2-4 tree to Red Black Tree!
13 3 8 10 18 1 2 4 5 6 9 11 12 14 15 20 13 8 18 3 10 15 20 2 5 9 12 14 1 4 6 11

8 Red Black Trees A BST with Red and Black colored nodes Root is black
Black node can have black children, but red node can only have black children Every external node has the same black depth

9 Red Black Tree Examples
Black height of tree is 2 Black height of tree is 2

10 Are these Red-Black Trees?
Double red Black height not uniform

11 Red-Black Tree to 2-4 Tree
Take a black node and its red children and combine them into one node of a 2-4 tree. Each node so formed has at least 1 and at most 3 keys. Black height = number of levels in 2-4 tree

12 Convert Red-Black Tree to 2-4 Tree
9 4 13 2 7 11 19 1 3 5 17 4 13 9 1 3 2 5 7 11 17 19

13 Height of Red-Black Tree

14 Minimum number of nodes for black height h?
n≥2h+1-1 h≤log2(n+1)-1

15 Maximum number of nodes for black height h?
n≤22h+1-1 n≤4h+1-1 h≥log4(n+1)-1

16 Red-Black Tree Black Height
log4(n+1)-1 ≤ h ≤ log2(n+1)-1 1/2log2(n+1) ≤ h+1 ≤ log2(n+1) O(log n)

17 Height of a Red-Black tree is at max twice the black height, i. e
Height of a Red-Black tree is at max twice the black height, i.e. O(log n)

18 Insert (k) Search for k as in BST that will give you the correct place to insert Create a new node at this place and insert the key The new node is colored red Restore the red-black tree property

19 Two Cases No problem Double red problem Red root problem
k k No problem Double red problem k Red root problem Color the root black

20 Case 1: Sibling of the parent of the inserted node is black or NULL
NULL or k c a b k c Equivalent 2-4 tree node contains {b,a,k} but malformed. The rotation corrects the defect.

21 Case 2: Sibling of the parent of the inserted node is red
k k b c b a k c a k

22 The double red problem can move up the tree…
k What if d is root?

23 Time complexity of insert?
BST search O(log n) Rebalancing: 1 rotation, O(log n) recoloring O(log n)

24 Delete To delete a node we proceed as in a BST.
Thus the node which is deleted is the parent of an external node. Hence it is either a leaf or the parent of a leaf.

25 Three Situations 19 1 11 17 17

26 Deleting black Node Reduces the height by 1
In general, it may reduce the height of a subtree from h to h-1

27 The cases: a a is red a is black a b b is black b is red a b c a b c a
Both c are black Both c are black Both d are black Some c is red a b a b c a b Some c is red Some d is red a b c a b c d a b c

28 Deletion: case1.1 a c b b a h to h-1 h-1 c h-1 h-1 h-1 h-1 h-1 h-1 a a

29 Deletion: case1.2 a a b b h to h-1 h-1 h-1 h-1 h-1 h-1 a b b a

30 Deletion: case2.1.1 c a b a h to h-1 b c d h h h-1 h-1 d h-1 h-1 h-1

31 Deletion: case2.1.2 b a a b h c h to h-1 h-1 c h h-1 h-1 h-1 h-1 a b b

32 Deletion: case2.2.1 a d c c a h to h-1 h-1 d h-1 h-1 h-1 h-1 h-1 h-1 a

33 Deletion: case2.2.2 a a c c h to h-1 h-1 h-1 h-1 h-1 h-1 a c a c

34 Summary In all cases, except 2.2.2, deletion can be completed by a simple rotation/recoloring In case 2.2.2, the height of the subtree reduces and so we need to proceed up the tree. But in case we only recolor nodes. Thus, if we proceed up the tree then we only need to recolor. Eventually we would do a rotation.

35 Insert and Delete Summary
In both insertion and deletion we need to make at most one rotation. We might have to move up the tree but in doing so we only recolor nodes. Time taken is O(log n).

36 In what situations would you prefer red-black tree over AVL Tree?

37 (a,b) Trees A multiway search tree.
Each node has at least a and at most b children. Root can have less than a children but it has at least 2 children. All leaf nodes are at the same level. Height h of (a,b) tree is at least logb n and at most loga n.

38 B-Tree Every leaf has the same depth.
Except the root, all nodes have between t and 2t children. The root node has between 0 and 2t children. Height is O(log n) A large value of t is used for disk based storage.

39 Examples Courtesy: Jan Manuch

40 Insertion Example Insert 65 47 32 71 93

41 Insertion Example Insert 65 47 32 71 65 93

42 Insertion Example Insert 65 Insert 82 47 32 71 65 93

43 Insertion Example Insert 65 Insert 82 47 32 71 65 93 82

44 Insertion Example Insert 65 Insert 82 47 32 71 71 65 65 93 93 82

45 Insertion Example Insert 65 Insert 82 47 Insert 87 32 71 65 93 82

46 Insertion Example Insert 65 Insert 82 47 Insert 87 32 71 65 93 82 87

47 Insertion Example Insert 65 Insert 82 47 Insert 87 32 71 65 93 82 87

48 Insertion Example Insert 65 Insert 82 47 Insert 87 32 71 65 87 82 93

49 Deletion Example 1 Delete 87 47 32 71 65 82 87 82 93

50 Deletion Example 2 Delete 71 47 32 65 71 65 87
Replace with predecessor Attach predecessor’s child 51 51 82 93

51 Deletion Example 3 Delete 32 47 32 71 65 87 82 93

52 Deletion Example 3 Delete 32 47 32 71 65 87 82 93

53 Deletion Example 3 71 47 47 87 65 65 82 93

54 Deletion Example 4 Delete 25 47 32 71 25 40 65 87 50 82 93

55 Deletion Example 4 Delete 25 47 32 71 25 40 65 87 50 82 93

56 Deletion Example 4 47 32 71 40 65 87 50 82 93


Download ppt "Lecture 17 Red-Black Trees"

Similar presentations


Ads by Google