TR NG ĐI H C KHOA H C T NHIÊNƯỜ
KHOA CÔNG NGH THÔNG TIN
B MÔN C U TRÚC D LI U 2
NGUY N HOÀI PH NG ƯƠ -0212234
NGUY N H NG PHÚ -0212226
BÀI BÁO CÁO MÔN C U TRÙC D LI U 2
GVHD : Ths . Ph m Ph m Tuy t Trinh ế
TP HCM , 2005
Cây Đ ĐenTháng 6 năm 2005
L i nói đu:
Cây đ đen là 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 và tìm ki m dế ư ế
li u. Song cây đ đen có nh ng đc tính riêng mà nh đó nó đã làm n i b t nh ng
đi m m nh c a mình.
Trong ph m vi bài báo cáo này, chúng em xin trình bài v : khái quát cây đ đen,
các thu t toán c b n, code cài đt các thu t tóan c b n và có 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 cô Ph m Ph m Tuy t Trinh đã t o đi u ki n choơ ế
chúng em tìm hi u đ tài lý thú này. Dù h t s c c g ng song v n không tránh đc ế ượ
nh ng sai xót nh t đnh chúng em mong đc s mong nh n đc nh ng đóng góp ượ ư ượ
chân tình đ bài làm tr nên hòan ch nh h n. ơ
Nhóm th c hi n
Sv: Nguy n Hoài Ph ng MSSV: 0212234 ươ
Sv:Nguy n H ng Phú MSSV: 0212226
Nguy n Hoài Ph ng ươ 2 Nguy n H ng Phú
Cây Đ ĐenTháng 6 năm 2005
M c l c:
Nguy n Hoài Ph ng ươ 3 Nguy n H ng Phú
Cây Đ ĐenTháng 6 năm 2005
I- Gi i thi u:
Câ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êm các đ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).
Ta đã bi t cây tìm ki m nh phân thông th ng có nh 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 cây tìm ki m nh phân có m t s h n ch . ườ ế ế
Nó ho t đng t t n u d li u đc chèn vào câ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ác tr s c n chèn đã đu c s p x p thì cây nh phân tr nên không cân ế
b ng. Khi cây không cân b ng, nó 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 u cách ti p c n khác đ b o đm cho cây cân b ng: ch ng h n cây 2-3- ế
4. Tuy v y, trong ph n l n tr ng h p, cây đ đen là cây câ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 cây không cân b ng đc t o ra nhướ ượ ư
th nào. ế
Nguy n Hoài Ph ng ươ 4 Nguy n H ng Phú
Cây Đ ĐenTháng 6 năm 2005
Hình 3.1. Cá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 vào tr c đó, m i node là 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 là 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 câ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 ế
vì 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.
Đ b o đm th i gian truy xu t nhanh O(logN) c a cây, chúng ta c n ph i b o đm
cây luôn luôn cân b ng (ít ra cũng là câ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 cách ti p c n gi i quy t v n đ cân b ng l i cây: đó là cây đ đen-là cây tìm ế ế
ki m nh phân vì th nó có các tính ch t c a cây tìm ki m nh phân ví d : node conế ế ế
trái nh h n node cha, node cha nh h n node con ph i, bên c nh đó cây đ đen cò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 tính ch t cân b ng c a cây có b vi ph m
hay không. N u có, s xây d ng l i c u trúc cây. B ng cách này, cây luôn luôn đcế ượ
gi cân b ng.
II- Đnh nghĩa:
Câ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) ế
Nguy n Hoài Ph ng ươ 5 Nguy n H ng Phú