Presentation is loading. Please wait.

Presentation is loading. Please wait.

Red-Black Tree Algorithm : Design & Analysis [12].

Similar presentations


Presentation on theme: "Red-Black Tree Algorithm : Design & Analysis [12]."— Presentation transcript:

1 Red-Black Tree Algorithm : Design & Analysis [12]

2 In the last class … Design against an Adversary Selection Problem – Median A Linear Time Selection Algorithm Analysis of Selection Algorithm A Lower Bound for Finding the Median

3 Red-Black Tree Dynamic sets Amortized time analysis Definition of red-black tree Black height Insertion into a red-black tree Deletion from a red-black tree

4 Dynamic Sets Dynamic set Membership varies during computation Maximum size unknown previously Space allocation techniques such as array doubling may be needed. The problem of “ unusually expensive ” individual operation.

5 Amortized Time Analysis Amortized equation: amotized cost = actual cost + accounting cost Design goals for accounting cost In any legal sequence of operations, the sum of the accounting costs is nonnegative. The amortized cost of each operation is fairly regular, in spite of the wide fluctuate possible for the actual cost of individual operations.

6 Accounting Scheme for Stack Push Push operation with array doubling No resize triggered: 1 Resize(n  2n) triggered: tn+1 (t is a constant) Accounting scheme (specifying accounting cost) No resize triggered: 2t Resize(n  2n) triggered: -nt+2t So, the amortized cost of each individual push operation is 1+2t  (1)

7 Node Group in a binTree 65 60 70 90 80 75 60 70 75 80 50 15 10 25 20 30 40 5 principal subtrees Node group As in 2-tree, the number of external node is one more than that of internal node

8 Binary Search Tree 30 20 40 50 80 60 40 20 60 50 80 30 Poor balancing  (n) Each node has a key, belonging to a linear ordered set An inorder traversal produces a sorted list of the keys Each node has a key, belonging to a linear ordered set An inorder traversal produces a sorted list of the keys In a properly drawn tree, pushing forward to get the ordered list. Good balancing  (logn)

9 Improving the Balancing by Rotation 50 15 10 25 20 30 40 25 40 15 20 10 30 50 The node group to be rotated Root of the group is changed. The middle principal subtree changes parent

10 Red-Black Tree: the Definition If T is a binary tree in which each node has a color, red or black, and all external nodes are black, then T is a red-black tree if and only if: [Color constraint] No red node has a red child [Black height constrain] The black length of all external paths from a given node u is the same (the black height of u) The root is black. Almost-red-black tree(ARB tree) Balancing is under controlled

11 Red-Black Tree with 6 Nodes 40 60 80 50 30 20 40 30 80 60 50 20 30 20 80 60 40 50 poorest balancing: height(normal) is 4 Black edge

12 Black-Depth Convention 40 30 80 50 20 50 40 30 60 40 60 20 80 3050 60 80 All with the same largest black depth: 2 ARB Trees

13 Recursive Definition of Red-Black Tree (A red-black tree of black height h is denoted as RB h ) Definition: An external node is an RB 0 tree, and the node is black. A binary tree ia an ARB h (h  1) tree if: Its root is red, and Its left and right subtree are each an RB h-1 tree. A binary tree ia an RB h (h  1) tree if: Its root is black, and Its left and right subtree are each either an RB h-1 tree or an ARB h tree.

14 Properties of Red-Black Tree The black height of any RB h tree or ARB h tree is well defind and is h. Let T be an RB h tree, then: T has at least 2 h -1 internal black nodes. T has at most 4 h -1 internal nodes. The depth of any black node is at most twice its black depth. Let A be an ARB h tree, then: A has at least 2 h -2 internal black nodes. A has at most (4 h )/2-1 internal nodes. The depth of any black node is at most twice its black depth. Let T be a red-black tree with n internal nodes, the height of T, in the usual sense, is at most 2lg(n+1)

15 Influences of Insertion into an RB Tree Black height constrain: No violation if inserting a red node. Color constraint: 40 60 20 80 3050 40 20 30 6070 50 80 Inserting 70 Critical clusters(external nodes excluded), which originated by color violation, with 3 or 4 red nodes

16 Repairing 4-node Critical Cluster 40 20 30 6070 50 80 Color flip: Root of the critical cluster exchanges color with its subtrees Color flip: Root of the critical cluster exchanges color with its subtrees 40 20 30 60 70 50 80 No new critical cluster occurs, inserting finished.

17 Repairing 4-node Critical Cluster 2 more insertions 40 20 30 60 70 50 808590 Critical cluster 90 40 20 30 60 70 50 80 85 New critical cluster with 3 nodes. Color flip doesn’t work, Why? New critical cluster with 3 nodes. Color flip doesn’t work, Why?

18 Patterns of 3-Node Critical Cluster 85 L RL LL M RRLR R L RL LL M RRLR R L RL LL M RRLR R L RL LL M RRLR R Shown as properly drawn A B C D

19 Repairing 3-Node Critical Cluster L RL LL M RRLR R Root of the critical cluster is changed to M, and the parentship is adjusted accordingly 90 40 20 30 60 70 50 80 85 The incurred critical cluster is of pattern A All into one pattern

20 Deletion: Logical and Structral u: to be deleted logically  : tree successor of u, to be deleted structurally, with information moved into u 90 40 20 30 60 70 50 80 85  S right subtree of S, to replacing S 90 40 20 30 70 50 80 85  After deletion

21 Deletion in a Red-Black Tree 90 40 20 30 60 70 50 80 85 To be deleted 90 40 20 30 70 50 80 85  The black height of  is not well-defined ! black depth=1 black depth=2 one deletion

22 Procedure of Red-Black Deletion 1. Do a standard BST search to locate the node to be logically deleted, call it u 2. If the right child of u ia an external node, identify u as the node to be structurally deleted. 3. If the right child of u is an internal node, find the tree successor of u, call it , copy the key and information from  to u. (color of u not changed) Identify  as the node to be deleted structurally. 4. Carry out the structural deletion and repair any imbalance of black height.

23 Imbalance of Black Height 60 7090 80 85 40 20 3050 90 70 85 deleting 80 80 90 deleting 85 50 20 30 deleting 40 70 90 80 85 deleting 60 Black height has to be restored

24 Analysis of Black Imbalance The imbalance occurs when: A black node is delete structrally, and Its right subtree is black(external) The result is: An RB h-1 occupies the position of an RB h as required by its parent, coloring it as a “gray” node. Solution: Find a red node and turn it red as locally as possible. The gray color might propagate up the tree.

25 Propagation of Gray Node s lr g p Map of the vicinity of g, the gray node s r g p l glr p s The pattern for which paropagation is needed p-subtree gets well-defined black height, but that is less than that required by its parent Gray Up In the worst case, up to the root of the tree, and successful

26 Schemes for Repairing g p s abc gab l l Deletion Rebalance group 4 principal subtrees, RB h-1 c p s Restructured Restructuring the deletion rebalance group: Red p: form an RB 1 or ARB 2 tree Black p: form an RB 2 tree Restructuring the deletion rebalance group: Red p: form an RB 1 or ARB 2 tree Black p: form an RB 2 tree


Download ppt "Red-Black Tree Algorithm : Design & Analysis [12]."

Similar presentations


Ads by Google