AVL Trees & Red-Black Trees

35
AVL Trees & Red-Black Trees Min Chen School of Computer Science and Engineering Seoul National University Data Structure: Chapter 8

description

Data Structure: Chapter 8. Min Chen School of Computer Science and Engineering Seoul National University. AVL Trees & Red-Black Trees. Content. Motivation of Red-Black Trees Balanced and Unbalanced Trees AVL Trees Definition of Red-Black Trees Operations for Red-Black Trees Search - PowerPoint PPT Presentation

Transcript of AVL Trees & Red-Black Trees

Page 1: AVL Trees &  Red-Black Trees

AVL Trees & Red-Black Trees

Min ChenSchool of Computer Science and Engineering Seoul National University

Data Structure: Chapter 8

Page 2: AVL Trees &  Red-Black Trees

Content

Motivation of Red-Black Trees Balanced and Unbalanced Trees AVL Trees

Definition of Red-Black Trees Operations for Red-Black Trees

Search Insertion

Page 3: AVL Trees &  Red-Black Trees

Motivation of Red-Black Tree (1)

20

30

35

25

10

155

Balanced and Unbalanced Trees

Page 4: AVL Trees &  Red-Black Trees

Motivation of Red-Black Tree (2) AVL-Tree

The balance factor of a node is the height of its left subtree minus the height of its right subtree

A node with balance factor 1, 0, or -1 is considered balanced

60

40

50

30

Balance Factor:2-0=2

Balance Factor:0-1=-1

45

Unbalanced

Page 5: AVL Trees &  Red-Black Trees

Motivation of Red-Black Tree (2) AVL-Tree: Rotation Operation

Page 6: AVL Trees &  Red-Black Trees

AVL-Tree: Rotation Operation

Motivation of Red-Black Tree (2)

Left Right Case60

40

50

30

45

60

40

50

30

45

60

40

50

30

45

Page 7: AVL Trees &  Red-Black Trees

Definition of Red-Black Trees Definition: a binary tree, satisfying:

1. Every node is colored either red or black

2. The root is black3. If a node is red, its children must be

black▪ consecutive red nodes are disallowed

4. Every path from a node to a null reference must contain the same number of black nodes

Page 8: AVL Trees &  Red-Black Trees

Example of Red-Black Trees The insertion sequence is

10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

30

15

5 50

10

70

8560

40 55

80 9065

20

Page 9: AVL Trees &  Red-Black Trees

Red-Black Trees: Properties

• Each path must contain the same number of black nodes. (Rule #4)

• Consecutive red nodes are not allowed. (Rule #3)• The longest path is at most twice the length of the shortest path

Page 10: AVL Trees &  Red-Black Trees

Red-Black Trees: Properties

B = total black nodes from root to leaf

N = total all nodes H = height

)1log(2)1log(

)1log()1log(21

2)1log()1log(22log2log

212

1212

2

2

2

NHN

NBN

BNNBBB

N

N

BB

BB

BB

All operations guaranteed logarithmic!

Page 11: AVL Trees &  Red-Black Trees

Insertion in Red-Black Trees A new node must be colored red

Why?▪ A new item is always inserted as a leaf in the

tree▪ If we color a new item black, then the number

of black nodes from root would be different (violate property #4)

If the parent is black, no problem. If the parent is red, we create two

consecutive red nodes (violate property #3)▪ Thus, we have to do some

rotating/recolouring…

Page 12: AVL Trees &  Red-Black Trees

A B

G

X

SP

C D E A B

GX

S

P

C

D E

Single RotationX: new nodeP: parentS: siblingG:

Grandparent

Case after insertion: Consecutive red (P & X) Sibling of parent (S) is black X is “outer node” (left-left or right-

right)

Page 13: AVL Trees &  Red-Black Trees

B C

G

X

SP

A D E A B

GP

S

X

C

D E

Double RotationX: new nodeP: parentS: siblingG:

Grandparent

Case after insertion: Consecutive red (P & X) Sibling of parent (S) is black X is “inner node” (left-right or left)

Page 14: AVL Trees &  Red-Black Trees

Single Rotation (bottom-up) Case after insertion:

Consecutive red Sibling of parent is red Outer node (left-left or right-right)

A B

G

X

SP

C D E A B

GX

S

P

C

D EBut what if P’s parent is red? We have to keep going up the tree all the way to the root

Page 15: AVL Trees &  Red-Black Trees

Top-Down Insertion

The solution: prevent S from ever being red!

Starting from the root (searching for insertion point) Never allow 2 red siblings If we see a node X with 2 red children,

do a colour flip.X

C2C1

X

C1 C2

Page 16: AVL Trees &  Red-Black Trees

Color Flip

Maintains property #4 Possible violation of #3: if X’s parent is

red!▪ Do single or double rotation▪ X’s parent’s sibling can never be red!

Set the root to black (to maintain property #2)

X

C2C1

X

C1 C2

Page 17: AVL Trees &  Red-Black Trees

A B

G

X

SP

C D E

Color Flip (2)

A B

G

X

SP

C D E

If we do the colour flipping on the way down to the insertion point, we will never reach a condition where P & S are red!

Page 18: AVL Trees &  Red-Black Trees

30

15

5

10

70

8560

50

55

80 9065

20

40

Example: Insert 18

18

Page 19: AVL Trees &  Red-Black Trees

30

15

5

10

70

8560

50

55

80 9065

20

40

Example: Insert 2

18

2

Page 20: AVL Trees &  Red-Black Trees

30

15

2

5

70

8560

50

55

80 9065

20

40

Example: Insert 2

1810

Page 21: AVL Trees &  Red-Black Trees

30

15

2

5

70

8560

50

55

80 9065

20

40

Example: Insert 45 (Illustration)

1810

45

Page 22: AVL Trees &  Red-Black Trees

30

15

2

5

70

8560

50

55

80 9065

20

40

Example: Insert 45 (Top-Down Color Flip)

1810

45

Color-flip!

Page 23: AVL Trees &  Red-Black Trees

30

15

2

5

70

8560

50

55

80 9065

20

40

Example: Insert 45 (Top-Down Color Flip)

1810

45

Color-flip!

Page 24: AVL Trees &  Red-Black Trees

30

15

2

5

70

8560

50

55

80 9065

20

40

Example: Insert 45 (Single Rotate)

1810

45

Page 25: AVL Trees &  Red-Black Trees

30

15

2

5 70

85

60

50

55

80 90

65

20

40

Example: Insert 45 (Single Rotate)

1810

45

Page 26: AVL Trees &  Red-Black Trees

Red-Black Tree Insertion: Exercise The insertion sequence is 10, 85, 15,

70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55

Page 27: AVL Trees &  Red-Black Trees

Red-Black Tree: Deletion Deletion in BST: only leaf nodes or nodes with one

child are really deleted (Why?) If the deleted node is red: no problem (all

properties maintained).Leaf nodes:

Single child nodes:

Page 28: AVL Trees &  Red-Black Trees

Top-Down Deletion If node to be deleted is black violate property #4 Always ensure that the node to be deleted is red. Top-down traversal from root (looking for node to

be deleted):

X: visited nodeP: parentS: sibling

B

P

SX

A C D

Idea: make sure that X is red!

Page 29: AVL Trees &  Red-Black Trees

Possible cases

P is red (inductive invariant) X and S are black (result of property #3)

2 cases: 1. Both X’s children (A & B) are black 2. X has at least one red child (A, B, or both)

B

P

SX

A C D

Page 30: AVL Trees &  Red-Black Trees

Case 1: Both X’s children are black Depends on children of S (C & D):

Both C & D are black: simply colour-flip:

B

P

SX

A C D B

P

SX

A C D

Page 31: AVL Trees &  Red-Black Trees

Case 1: Both X’s children are black

Outer child of S (C) is Red: do a single rotation and recolour

B

P

SX

A C D

C

S

DP

B

X

A

Page 32: AVL Trees &  Red-Black Trees

Case 1: Both X’s children are black Inner child of S (C) is Red: do a double

rotation and recolour

B

P

SX

A DC

C

SP

B

X

A

D

Page 33: AVL Trees &  Red-Black Trees

Case 2: One/Both of X’s children is red Recurse down to X’s child If we land on a red node, fine. If we land on a black node, rotate

sibling and parent:

B

P

SX

A CC

S

P

B

X

AD

D

Page 34: AVL Trees &  Red-Black Trees

Red-Black trees use color as balancing information instead of height in AVL trees.

An insertion may cause a local perturbation (two consecutive red nodes)

The pertubation is either resolved locally (rotations), or propagated to a higher level in the tree by recoloring

(color flip) O(1) for a rotation or color flip At most one restructuring per insertion. O(log n) color flips Total time: O(log n)

Summary

Page 35: AVL Trees &  Red-Black Trees

Thank you!