Red-Black Tree

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

description

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 - PowerPoint PPT Presentation

Transcript of Red-Black Tree

Page 1: Red-Black Tree

Red-Black Tree

Algorithm : Design & Analysis[12]

Page 2: Red-Black Tree

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

Page 3: Red-Black Tree

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

Page 4: 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.

Page 5: Red-Black Tree

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.

Page 6: Red-Black Tree

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)

Page 7: Red-Black Tree

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

Page 8: Red-Black Tree

Binary Search Tree

30

20

40

50

80

60

40

20 60

50 8030

Poor balancing(n)

•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)

Page 9: Red-Black Tree

Improving the Balancing by Rotation

50

15

10 25

20

30

40

25

4015

2010 30

50The node group to be rotated

Root of the group is changed.

The middle principal subtree changes parent

Page 10: Red-Black Tree

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

Page 11: Red-Black Tree

Red-Black Tree with 6 Nodes40

60

805030

20

40

30 80

60

50

20

30

20

80

60

40

50

poorest balancing: height(normal) is 4

Black edge

Page 12: Red-Black Tree

Black-Depth Convention

40

30

8050

20

20

5040

30

60

40

6020 8030 5060

80

All with the same largest black depth: 2

ARB Trees

Page 13: Red-Black Tree

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.

Page 14: Red-Black 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)

Page 15: Red-Black Tree

Influences of Insertion into an RB Tree Black height constrain:

No violation if inserting a red node. Color constraint:

40

6020 8030 50

40

20 30 60 7050 80Inserting 70

Critical clusters(external nodes excluded), which originated by color violation, with 3 or 4 red nodes

Page 16: Red-Black Tree

Repairing 4-node Critical Cluster

40

20 30 60 7050 80

Color flip:Root of the critical cluster exchanges color with its subtrees

40

20 30

60

7050 80

No new critical cluster occurs, inserting finished.

Page 17: Red-Black Tree

Repairing 4-node Critical Cluster2 more insertions

40

20 30

60

7050 80 85 90

Critical cluster

90

40

20 30

60

7050

80

85

New critical cluster with 3 nodes.Color flip doesn’t work,Why?

Page 18: Red-Black Tree

Patterns of 3-Node Critical Cluster

85

L

RLLL

M

RRLR

R L

RLLL

M

RRLR

R

L

RLLL

M

RRLR

R L

RLLL

M

RRLR

R

Shown as properly drawn

A B

C D

Page 19: Red-Black Tree

Repairing 3-Node Critical Cluster

L

RLLL

M

RRLR

RRoot of the critical cluster is changed to M, and the parentship is adjusted accordingly

90

40

20 30

60

7050

80

85

The incurred critical cluster is of pattern A

All into one pattern

Page 20: Red-Black Tree

Deletion: Logical and Structralu: to be deleted logically

: tree successor of u, to be deleted structurally, with information moved into u

90

40

20 30

60

7050

80

85

Sright subtree of S, to replacing S

90

40

20 30

70

50

80

85

After deletion

Page 21: Red-Black Tree

Deletion in a Red-Black Tree

90

40

20 30

60

7050

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

Page 22: Red-Black Tree

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.

Page 23: Red-Black Tree

Imbalance of Black Height60

70 90

80

85

40

20 30 50

9070

85deleting 80

80

90

deleting 85

50

20 30

deleting 40

70

90

80

85

deleting 60

Black height has to be restored

Page 24: Red-Black Tree

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 RBh 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.

Page 25: Red-Black Tree

Propagation of Gray Node

s

l r

g

p

Map of the vicinity of g, the gray node

s

r

g

p

l

g l r

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 UpIn the worst case, up to the root of the tree, and successful

Page 26: Red-Black Tree

Schemes for Repairing

g

p

s

a b c

g a b

l

l

Deletion Rebalance group

4 principal subtrees, RBh-1

c

p s

Restructured

Restructuring the deletion rebalance group:•Red p: form an RB1 or ARB2 tree•Black p: form an RB2 tree