280 likes | 406 Views
Red-Black Tree. Algorithm : Design & Analysis [12]. 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. Red-Black Tree. Dynamic sets Amortized time analysis
E N D
Red-Black Tree Algorithm : Design & Analysis [12]
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
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
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.
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.
Accounting Scheme for Stack Push • Push operation with array doubling • No resize triggered: 1 • Resize(n2n) triggered: tn+1 (t is a constant) • Accounting scheme(specifying accounting cost) • No resize triggered: 2t • Resize(n2n) triggered: -nt+2t • So, the amortized cost of each individual push operation is 1+2t(1)
Node Group in a binTree As in 2-tree, the number of external node is one more than that of internal node Node group 50 70 70 15 80 80 60 60 25 10 40 75 20 65 75 90 30 5 principal subtrees
80 60 30 50 Binary Search Tree Poor balancing (n) Good balancing (logn) 40 30 60 20 20 80 50 40 In a properly drawn tree, pushing forward to get the ordered list. • Each node has a key, belonging to a linear ordered set • An inorder traversal produces a sorted list of the keys
Improving the Balancing by Rotation The node group to be rotated 50 50 25 Root of the group is changed. 15 15 40 25 10 10 20 30 40 20 30 The middle principal subtree changes parent
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
40 Red-Black Tree with 6 Nodes 40 60 poorest balancing: height(normal) is 4 20 30 80 30 50 20 60 Black edge 80 40 50 60 20 80 30 50
40 30 60 40 20 20 50 80 30 40 30 60 60 50 20 50 80 80 Black-Depth Convention All with the same largest black depth: 2 ARB Trees
Recursive Definition of Red-Black Tree (A red-black tree of black height h is denoted as RBh) • Definition: • An external node is an RB0 tree, and the node is black. • A binary tree ia an ARBh (h1) tree if: • Its root is red, and • Its left and right subtree are each an RBh-1 tree. • A binary tree ia an RBh (h1) tree if: • Its root is black, and • Its left and right subtree are each either an RBh-1 tree or an ARBh tree.
Properties of Red-Black Tree • The black height of any RBh tree or ARBh tree is well defind and is h. • Let T be an RBh tree, then: • T has at least 2h-1 internal black nodes. • T has at most 4h-1 internal nodes. • The depth of any black node is at most twice its black depth. • Let A be an ARBh tree, then: • A has at least 2h-2 internal black nodes. • A has at most (4h)/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)
40 40 60 60 20 20 70 30 50 50 30 80 80 Influences of Insertion into an RB Tree • Black height constrain: • No violation if inserting a red node. • Color constraint: Critical clusters(external nodes excluded), which originated by color violation, with 3 or 4 red nodes Inserting 70
40 60 40 20 20 30 50 70 30 70 Repairing 4-node Critical Cluster No new critical cluster occurs, inserting finished. 80 Color flip: Root of the critical cluster exchanges color with its subtrees 60 80 50
40 40 20 20 90 30 30 70 90 Repairing 4-node Critical Cluster 2 more insertions 60 Critical cluster 80 85 50 New critical cluster with 3 nodes. Color flip doesn’t work, Why? 60 80 70 85 50
L L L R M M M M R R LR RR RL RL RL RL LL Patterns of 3-Node Critical Cluster B A LR RR LR RR LL LL Shown as properly drawn D C L R LR RR LL 85
20 90 30 40 60 80 RL 70 85 50 Repairing 3-Node Critical Cluster All into one pattern Root of the critical cluster is changed to M, and the parentship is adjusted accordingly L M R LR RR LL The incurred critical cluster is of pattern A
Deletion: Logical and Structral u: to be deleted logically 80 40 60 20 70 85 90 30 50 S : tree successor of u, to be deleted structurally, with information moved into u right subtree of S, to replacing S 80 40 70 20 85 90 30 50 After deletion
To be deleted 40 60 80 20 20 70 85 50 30 30 90 90 Deletion in a Red-Black Tree one deletion The black height of is not well-defined ! 40 70 80 85 50 black depth=1 black depth=2
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.
40 80 50 20 20 90 30 90 90 30 Imbalance of Black Height 60 70 85 deleting 80 deleting 40 50 85 Black height has to be restored 70 deleting 60 80 deleting 85 70 80 90 85
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 RBh-1 occupies the position of an RBhas 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.
p g g l s Propagation of Gray Node The pattern for which paropagation is needed p p s s r l r Gray Up In the worst case, up to the root of the tree, and successful Map of the vicinity of g, the gray node g l r p-subtree gets well-defined black height, but that is less than that required by its parent
g c s a g p b a s b c p l l Schemes for Repairing Deletion Rebalance group Restructured 4 principal subtrees, RBh-1 • Restructuring the deletion rebalance group: • Red p: form an RB1 or ARB2tree • Black p: form an RB2tree