You are on page 1of 28

Lecture 2: Cy en (Red-Black Trees)

nh ngha: L cy NPTK, trong :


Nt gc phi l nt en Mi nt hoc l hoc en. Mi con tr null c coi l mt nt en. Mt nt th 2 nt con ca n phi l en. Mi ng dn t mt nt n mt nt l phi c cng s nt en.

nh ngha: Chiu cao en ca mt nt P bng s nt en trn ng dn t nt n mt nt l bt k (khng tnh nt con tr NULL).


1

A valid Red-Black Tree Black-Height = 2

nh l 1: Mt cy en bt k c gc l nt x, c t nht n = 2bh(x) 1 nt trong vi bh(x) chiu cao en ca nt gc x. Chng minh bng quy np trn chiu cao ca x. Nu bh=0, th nt gc x=NULL, nh vy s nt trong bng 0 = 2bh(x) 1 =0 Nu bh=1, th nt gc x<> NULL, s nt trong t nht l 1= 2bh(x) 1 =1 Gi s cy c chiu cao en l bh(x) => s nt trong ca cy ny bng tng s nt trong ca 2 cy con cng vi 1: Cc cy con ca x c th c chiu cao l bh(x) nu nh nt x l , bh(x)-1 nu nh x l en. Nh vy s nt trong ca cy gc x t nht l:
(2bh(x)-1 1 ) + (2bh(x)-1 1 ) +1 = (2bh(x) 1 )
4

nh l 2: Trong mt cy en, t nht mt na s nt trn ng dn t gc n l l nt en. Chng minh: da theo tnh cht mt nt th 2 nt con ca n phi en.

nh l 3 Mt cy -en c n nt trong c chiu cao h <= 2 lg(n + 1). Chng minh: gi h l chiu cao ca cy -en c gc x. Theo ng l 2: bh(x) >= h/2 T nh l 1, ta c n >= 2bh(x) - 1 => n >= 2 h/2 1 n + 1 >= 2h/2 lg(n + 1) >= h/2 2lg(n + 1) >= h
6

Bottom Up Insertion
Vic thm nt c thc hin nh trong cy NPTK Mu ca nt thm vo ban u l mu RED Kim tra xem tnh cht RB c b vi phm khng?
Mi nt hoc l Red hoc Black Con tr NULL c xem l mt nt en Mt nt th 2 nt con ca n phi l en Mi nt phi c cng chiu cao en Nt gc phi mu en
7

Bottom Up Insertion
Thm nt: mu ban u ca nt l , X tr n nt va thm Cases 0: X l nt gc -> i mu x thnh en. 1: C 2 nt: cha v ch u th thc hin i mu nt cha, ch thnh en, mu nt ng thnh , X tr n nt ng, tip tc kim tra X ti v tr mi. 2 (zig-zag): Nt cha , ch en. Nt cha v nt X khng cng l con tri hoc phi. Thc hin i mu nt ng thnh , X en, quay tri nt cha, quay phi nt ng. 3 (zig-zig): Nt cha , ch en. X v nt cha hoc cng l con tri hoc cng l con phi. Thc hin i mu nt cha thnh en, ng thnh , quay phi nt ng. 8

Case 1:

X G P X U P G U

i mu nt cha, ch thnh en, mu nt ng thnh , X tr n nt ng, tip tc kim tra X ti v tr mi

G P S X S U P

X G

U
Case 2 Zig-Zag Double Rotate X around P; X around G i mu G thnh v X thnh en. (kt thc)
10

G P X X

P G

Case 3 Zig-Zig Single Rotate P around G t P - Black and G Red (kt thc)
11

Insert 4 into this R-B Tree 11 2 1 5 7 8 14 15

Black node

Red node
12

Insertion Practice
Insert the values 2, 1, 4, 5, 9, 3, 6, 7 into an initially empty Red-Black Tree

13

phc tp ca php Insertion


O(lg n) i t gc xung tm v tr thm. O(1) - thm O(lg n) i ngc ln v hiu chnh mu (case 1) Total: O(log n)

14

Bottom-Up Deletion (BST)


1. Nu nt cn xa l nt l th thc hin xa nt. 2. Nu nt cn xa ch c mt nt con th ko nt con ln. 3. Nu nt cn xa c c 2 nt con th phi tm nt thay th. => Nt b xa thc s s c thay th bng nt c gi tr NULL hoc nt con bn tri hoc nt con bn phi.
15

Bottom-Up Deletion (RBT)


1. Xa nh trn BST.
Gi s U nt cn xa Nu U nt l, thay th U bng con tr NULL k hiu l V. Nu U c mt nt con l V, khi xa th U c thay bng V. Nu U c 2 nt con th phi tm nt thay th - V

16

Sau khi xa c th vi phm tnh cht RB?


1. If U is red? => Sau khi xa U s khng vi phm tnh cht en. 2. If U is black? Nu U khng phi gc th khi xa U s lm thay i chiu cao en trn ng dn tng ng. m bo chiu cao en ta y mt n v en xung nt thay th ta k hiu l V. Vn cn x l l V c th tr thnh en kp (V+) nu nh V ang l nt en.
17

Hiu chnh khi xa nt U en v V l en kp


V mt tnh cht en kp, ta tm cch t V ln mt nt

Khi nt V c t ln mt nt hoc nt gc ca cy th n tr thnh nt en thng. Sau y chng ta ch xt V l con tri. (Trng hp V l con phi ta lm tng t)

18

K hiu
U nt cn xa V nt thay th, V+ en kp P nt cha ca V. S anh em ca V.

Black Node Red Node

Red or Black and dont care

19

Bottom-Up Deletion - Case 1


Anh em ca V+ l S c mu Rotate S around P and recolor S & P Cha kt thc (NOT a terminal case One of the other cases will now apply) p dng cy nhn c vi cc trng hp anh em ca V+ l mu en.

20

Case 1 Diagram
P V+ S V+
Anh em ca V+ l S mu Rotate

S P

Recolor

P V+
Rotate S around P and recolor S & P Xt tip vi V+ v tr mi

21

Bottom-Up Deletion - Case 2


Anh em ca V+ l S mu en v c c 2 nt con u mu en. i mu S thnh P tip nhn mt n v en t V+: Nu ban u P mu th P i thnh en v dng. Nu P ban u mu en th P thnh en kp v ta li phi tip tc xt.

22

Case 2 diagram
Anh em ca V+ l S mu en v c c 2 nt con u mu en.

P V+ S

Recolor

P+ V S

i mu S thnh . P tip nhn mt n v en t V+: Nu ban u P mu th P i thnh en v dng. Nu P ban u mu en th P thnh en kp v ta li phi tip tc xt.
23

Bottom-Up Deletion - Case 3


Nt anh em ca V+ l nt S mu en Nt S c nt con phi mu (nt con tri hoc mu hoc mu en) Rotate S around P Hon i mu ca S v P (Mau(P):=Mau(S); Mau(S):=Mau(P)) t mu ca con phi ca S thnh en Kt thc

24

Case 3 diagrams
Nt anh em ca V+ l nt S mu en Nt S c nt con phi mu (con tri hoc hoc en)

P V+ S

Rotate

S P V+ S

P V

Recolor

Rotate S around P Hon i mu ca S v P (Mau(P):=Mau(S); Mau(S):=Mau(P)) 25 t mu ca con phi ca S thnh en. (kt thc)

Bottom-Up Deletion - Case 4


Nt V+ c nt anh em l nt S mu en, nt con phi c mu en v nt con tri mu Quay con tri ca S quanh S. Hon i mu ca S vi mu nt con tri ca S Now in case 3

26

Case 4 Diagrams
Nt V+ c nt anh em l nt S mu en, con phi en v con tri

P V+ S P
Rotate

P V+ S S
Recolor

V+

Quay con tri ca S quanh S. Hon i mu ca S vi con tri ca S Now in case 3

27

65 50 10 60 70 80 90

62 Perform the following deletions, in the order specified Delete 90, Delete 80, Delete 70

28

You might also like