You are on page 1of 2

Trường hợp p là con phải của g, chúng ta sẽ có thêm hai mẫu biến đổi nữa là

mẫu 4 (đối xứng qua gương của mẫu 2) và mẫu 5 (đối xứng qua gương của mẫu
3).

Kết luận: Thuật toán xen vào cây đỏ - đen là như sau.

1. Áp dụng thuật toán xen vào cây tìm kiếm nhị phân đỉnh mới v, đỉnh v được sơn đỏ.
2. Đi từ đỉnh v lên gốc, nếu hai đỉnh cha con cùng là đỏ thì ta áp dụng một trong 5 mẫu biến
đổi đã trình bày,
o Nếu một trong 4 mẫu 2, 3, 4, 5 được áp dụng thì cây đã trở lại là cây đỏ - đen và
dừng lại.
o Nếu mẫu 1 được áp dụng thì luật đỏ lại có thể bị vi phạm, song hai đỉnh cha – con
cùng đỏ đã được đẩy lên trên.
3. Trong trường hợp xấu nhất, hai đỉnh cha – con cùng đỏ được đẩy lên trên cùng, đỉnh cha
là gốc cây. Lúc này ta chỉ cần sơn lại đỉnh cha đen.

Pseudo-code:
RB-INSERT(T, k)
BST-INSERT(T, k)
while k.parent.color == RED
if k.parent == k.parent.parent.right
u = k.parent.parent.left
if u.color == RED
u.color = BLACK
k.parent.color = BLACK
k.parent.parent.color = RED
k = k.parent.parent
else if k == k.parent.left
k = k.parent
LEFT-ROTATE(T, k)
k.parent.color = BLACK
k.parent.parent.color = RED
RIGHT-ROTATE(T, k.parent.parent)
else (same as then clause with “left” and “right” exchanged)
T.root.color = BLACK

Phép toán loại (Deletion) :


1. Giả sử chúng ta cần loại khỏi cây đỏ - đen đỉnh chứa dữ liệu với khoá là k. Đầu tiên ta
cũng áp dụng thuật toán loại trên cây tìm kiếm nhị phân. Nhớ lại thuật toán này, đỉnh
thực sự bị cắt bỏ là đỉnh không đầy đủ, bởi vì trường hợp đỉnh chứa khoá k có đầy đủ cả
hai con được đưa về cắt bỏ đỉnh ngoài cùng bên phải của cây con trái của đỉnh chứa khoá
k. Giả sử đỉnh bị cắt bỏ là đỉnh v. Nếu v là đỏ thì sau khi cắt bỏ nó, cây vẫn còn là cây đỏ
- đen, chẳng hạn khi ta cắt bỏ đỉnh D hoặc G trong cây hình 0. Nếu v có một con là u,
trường hợp này v phải đen và u phải là đỏ, sau khi cắt bỏ v, đỉnh u ở vị trí của v, ta sơn lại
u thành đen, và cây vẫn còn là cây đỏ - đen, chẳng hạn khi ta cắt bỏ đỉnh B hoặc F trong
cây hình 0. Trường hợp còn lại là khi đỉnh bị cắt bỏ v là đen và là lá, chẳng hạn đỉnh E
trong hình 0.

You might also like