24.12.2013 Views

․Course ․Readings:

Unit-3.pdf

Unit-3.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

RB-Tree Deletion (cont’d)<br />

RB-Delete(T, z)<br />

1. y = z<br />

2. y-original-color = y.color<br />

3. if z.left == T.nil // case A<br />

4. x = z.right<br />

5. RB-Transplant(T, z, z.right)<br />

6. elseif z.right == T.nil // case B<br />

7. x = z.left<br />

8. RB-Transplant(T, z, z.left)<br />

9. else y = Tree-Minimum(z.right)<br />

10. y-original-color = y.color<br />

11. x = y.right<br />

12. if y.p == z // case C<br />

13. x.p = y<br />

14. else RB-Transplant(T, y, y.right)<br />

15. y.right = z.right // case D<br />

16. y.right.p = y<br />

17. RB-Transplant(T, z, y) // cases C, D<br />

18. y.left = z.left<br />

19. y.left.p = y<br />

20. y.color = z.color<br />

21. if y-original-color == BLACK<br />

22. RB-Delete-Fixup(T, x)<br />

Case D<br />

x<br />

l<br />

3<br />

successor<br />

y<br />

z<br />

T.nil<br />

y<br />

r<br />

x<br />

z<br />

y<br />

x<br />

r<br />

r<br />

• If y is black,<br />

call RB-Delete-<br />

Fixup (line 22)<br />

to fix the black<br />

height<br />

• z: the deleted<br />

node<br />

• x: y's sole child<br />

Unit 3 Spring 2013<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!