TR NG Đ I H C KHOA H C T NHNƯỜ
KHOA CÔNG NGH THÔNG TIN
B MÔN C U TRÚC D LI U 2
NGUY N HI PH NG ƯƠ -0212234
NGUY N H NG PHÚ -0212226
BÀI O CÁON C U TC D LI U 2
GVHD : Ths . Ph m Ph m Tuy t Trinh ế
TP HCM , 2005
y Đ ĐenTháng 6 năm 2005
L i nói đ u:
y đ đen m t trong nh ng c u tr c d li u hay, cùng v i cây nh phân tìm
ki m là nh ng c u trúc d li u có đi m m nh trong vi c l u tr tìm ki m d li u.ế ư ế
Song y đ đen nh ng đ c tính riêng nh đó đã làm n i b t nh ng đi m
m nh c a mình.
Trong ph m vi i báo o y, chúng em xin trình bài v : khái quát y đ đen,
c thu t toán c b n, code i đ t c thu t an c b n nh ng nh n xét v ơ ơ
c u trúc cây đ đen này.
Chúng em chân thành cam n Ph m Ph m Tuy t Trinh đã t o đi u ki n choơ ế
chúng em tìm hi u đ i thú này. h t s c c g ng song v n không tránh đ c ế ượ
nh ng sai t nh t đ nh chúng em mong đ c s mong nh n đ c nh ng đóng góp ượ ư ượ
chân tình đ i làm tr nên hòan ch nh h n. ơ
Nhóm th c hi n
Sv: Nguy n Hi Ph ng MSSV: 0212234 ươ
Sv:Nguy n H ng Phú MSSV: 0212226
Nguy n Hoài Ph ng ươ 2 Nguy n H ng P
y Đ ĐenTháng 6 năm 2005
M c l c:
I- Gi i thi u:
y đ đen đ c ra gi i thi u b i Rudolf Bayer trong quy n “Symmetric Binary ượ
B-Trees: Data Structure and maintenance Algorithms”, nhà xu t b n Acta
Informatica, Tâp1, trang 290-306. Sau đó Leonidas J.Guibas và Robert Sedgewick
đã thêmc đ c tính c a cây đ đen và đ t tên cho nó ( Tham kh o: Guibas, L. and
Sedgewick R. “ A dichromatic Framwork for Balanced Trees”, in Proc. 19th IEEE
Symp. Foundations of Computer Science, trang 8-21, năm 1978).
Nguy n Hoài Ph ng ươ 3 Nguy n H ng P
y Đ ĐenTháng 6 năm 2005
Ta đã bi t cây tìm ki m nh phân thông th ngnh ng thu n l i l n v m t l uế ế ườ ư
tr và truy xu t d li u trong phép toán tìm ki m thêm vào hay lo i b m t ph n ế
t . Do đó, cây tìm ki m nh phân xem ra là m t c u trúc l u tr d li u t t. ế ư
Tuy nhiên trong m t s tr ng h p y tìm ki m nh phân có m t s h n ch . ườ ế ế
ho t đ ng t t n u d li u đ c chèn vào y theo th t ng u nhiên. Tuy nhiên, ế ượ
n u d li u đ c chèn vào theo th t đã đu c s p x p s không hi u qu . Khiế ượ ế
c tr s c n chèn đã đu c s p x p thì y nh phân tr nên không cân b ng. Khi ế
y không n b ng, m t đi kh năng tìm ki m nhanh (ho c chèn ho c xóa) ế
m t ph n t đã cho.
Chúng ta kh o sát m t cách gi i quy t v n đ c a cây không cân b ng: đó là cây ế
đ đen, là cây tìm ki m nh phân có thêm m t vài đ c đi m . ế
Có nhi uch ti p c n khác đ b o đ m cho cây cân b ng: ch ng h n y 2-3-4. ế
Tuy v y, trong ph n l n tr ng h p, cây đ đen là cây n b ng hi u qu nh t, ít ườ
ra thì khi d li u đ c l u tr trong b nh ch không ph i trong nh ng t p tin. ượ ư
Tr c khi kh o sát cây đ đen, hãy xem l i y kng cân b ng đ c t o ra nhướ ượ ư
th nào. ế
Hình 3.1.c node đ c chèn theo th t tăng d nượ
Nh ng node này t s p x p thành m t đ ng không phân nhánh. B i vì m i node l n ế ườ
h n node đã đ c chèn o tr c đó, m i node con ph i. Khi y, cây b m t cânơ ượ ướ
b ng hoàn toàn. N u ta chèn nh ng m c (item) theo th t gi m d n, m i node s ế
con trái c a node cha c a chúng - cây s b m t cân b ng v phía bên kia.
* Đ ph c t p:
Khi y m t nhánh, s tr thành m t danh sách liên k t, d li u s là m t chi u thay ế
hai chi u. Trong tr ng h p này, th i gian truy xu t gi m v O(N), thay vì O(logN) ườ
đ i v i cây cân b ng.
Nguy n Hoài Ph ng ươ 4 Nguy n H ng P
y Đ ĐenTháng 6 năm 2005
Đ b o đ m th i gian truy xu t nhanh O(logN) c a y, chúng ta c n ph i b o đ m
y luôn luôn cân b ng (ít ra cũng lày g n cân b ng). Đi u này có nghĩa là m i node
trên cây ph i có x p x s node con bên ph i b ng s node con bên trái.
M t ch ti p c n gi i quy t v n đ cân b ng l i y: đó cây đ đen-là cây tìm ế ế
ki m nh phân th c nh ch t c a y tìm ki m nh phân d : node conế ế ế
trái nh h n node cha, node cha nh h n node con ph i, n c nh đó y đ đen n ơ ơ
đ c b sung m t s đ c đi m.ượ
Trong cây đ đen, vi c cân b ng đ c th c thi trong khi chèn, xóa. Khi thêm m t ượ
ph n t thì th t c chèn s ki m tra xem nh ch t cân b ng c a y b vi ph m
hay không. N u có, s y d ng l i c u trúc cây. B ng ch này, cây luôn luôn đ cế ượ
gi cân b ng.
II- Đ nh nghĩa:
y đ đen là m t cây nh phân tìm ki m( BST) tuân th các quy t c sau: (hình 3.2) ế
M i node ph i là đ ho c đen.
Node g c vàc node lá ph i luôn luôn đen.
N u m t node là đ , nh ng node con c a nó ph i đen.ế
M i đ ng d n t g c đ n m t lá ph i cóng s l ng node đen. ườ ế ượ
Khi chèn (hay xóa) m t node m i, c n ph i tuân th c quy t c trên -g i là quy t c
đ đen. N u đ c tuân th , cây s đ c cân b ng. ế ượ ượ
Hình 3.2. M t ví d v cây đ đen
Nguy n Hoài Ph ng ươ 5 Nguy n H ng P