Câu trúc dữ liệu & Giải thuật... tach nut la ra lam doi, va chuyên phân tử giữa lên nút cha..... ...nút cha thiếu khóa... Tóm lược @ Cay M-nhanh =m Làm giảm độ cao cay = [hao tác th
Trang 1Câu trúc dữ liệu & Giải thuật
Trang 2
Nội dung
© Đăi vân đê
© Cây m-nhánh (m-way tree)
Trang 3Dat van dé
@ Can luu tri sé phan ter dé liéu rat lon
@ Luu tr@ tren b6 nho ngoai
@ Tim kiém nhanh
CTDL> - B-[Iree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009
Trang 4Đặt vân đê (tt)
e Giải pháp:
a Cay can bang
a» Phan trang dữ liệu
e Tăng sô nhánh của cây > giảm độ cao
s Gom nhóm dữ liệu theo từng sector/block 2> giảm sô
lân truy xuât đĩa
CTDL> - B-[Iree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009
Trang 5[1] Cay m-nhanh (m-way tree)
@ Dinh nghia: cay m-nhanh la 1 cay
m Mỗi nút chứa từ 1 đên m-† khóa có giá trị phân
biệt
= Cac khóa trong mỗi nút được sắp thứ tự (tăng
dân)
=m Một nút có k khóa thì sẽ có k+1 Cay con, các
cây con có thê là rông
am Cây con thứ ¡ (0 <= ¡ <= k) của nút chứa các
Trang 6[1] Cay m-nhanh (m-way tree) (tt)
Trang 7[1] Cay m-nhanh (m-way tree) (tt)
Thao tac thém phan tt (Insert): thém 1
khoa v vao cay
= Duyét cay dé tim kiém vị tri của v cho dén khi
gap cay con rong
a Thém khéa v vao nut cha cua cay con rong
(néu nut cha con cho trong)
„ hoặc nêu nút cha khéng con cho trong, tạo-nút
mới và thêm khóa v vào nút đó
CTDL> - B-[Iree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009
Trang 8[1] Cay m-nhanh (m-way tree) (tt)
Trang 9[1] Cay m-nhanh (m-way tree) (tt)
Trang 10[1] Cay m-nhanh (m-way tree) (tt)
Thao tac x6a phan tt (Delete): x6a 1 khdéa v
khỏi cây
m Nêu v năm giữa 2 cây con rỗng (v không có
cây con) thì xóa v
„ Nêu v có cây con, thay thê v bằng:
e phân tử lớn nhất trong cây con trái của v;
e hoặc phân tử bé nhất trong cây con phải của v
CTDL> - B-Tree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 10
Trang 11[1] Cay m-nhanh (m-way tree) (tt)
Trang 12[1] Cay m-nhanh (m-way tree) (tt)
[28 | 30 |
Xoa khoa 16 (có cây con)
CTDL> - B-[Iree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 12
Trang 13
[1] Cay m-nhanh (m-way tree) (tt)
Trang 14[1] Cay m-nhanh (m-way tree) (tt)
Trang 15
CTDL> - B-Tree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 15
Trang 16[2| B-Cay (B- Tree)
rool]
Trang 17
[2| B-Cay (B- Tree)
© Y nghĩa:
s B-cây là dạng cây cân bằng, phù hợp với việc
lưu trữ trên đĩa
m B-cây tiêu tôn số phép truy xuât đĩa tôi thiêu
Trang 19[2] B-Cây (B-Tree) (tt)
Thao tác thêm phân tử (Insert): thêm 1
khóa v vào cây
m [hêm v vào † nút lá
„ Nêu nút lá đây: tách nút lá ra làm đôi, và
chuyên phân tử giữa lên nút cha
| 24 | jes] ae] | | |is |2 | } 28 | 30 |
Trang 20[2] B-Cay (B-Tree) (tt)
r\ “TUS
Thém khéa 21 nut la bi day tach nut la ra lam doi, va
chuyên phân tử giữa lên nút cha
CTDL> - B-Tree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 20
Trang 21CTDL> - B-[Iree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 21
Trang 22[2] B-Cây (B-Tree) (tt)
© Thao tác xóa phân tử (Delete): xóa 1 khóa v
trong cây
m Thuật toán tương tự đôi với cây m-nhánh
z Nếu 1 nút có ít hơn [(m-1)/2] khóa:
e Nó sẽ “mượn” 1 khóa từ nút anh em kê cận (nêu nút
anh em có dư khóa);
e hoặc là nó sẽ “sáp nhập” với 1 nút anh em kê cận
(nêu nút anh em không dư khóa), cùng với khóa tương ứng ở nút cha
CTDL> - B-[Iree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 22
Trang 25
CTDL> - B-Tree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 25
Trang 26
CTDL> - B-Tree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 26
Trang 28nút cha thiếu khóa | 3 | | 22 | 26
nen mượn khóa 22 / ⁄
/ \
ở nút anh em "Am" | 2s | 30 |
CTDL> - B-Tree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 28
Trang 29rete] fe] Pe) Pepe]
Chuyễn các cây con tương ứng
CTDL> - B-Tree - Nguyen Tri Tuan - DHKHTN - TP.HCM Winter 2009 29
Trang 30Tóm lược
@ Cay M-nhanh
=m Làm giảm độ cao cay
= [hao tác thêm vào và loại bỏ khóa khá đơn giản
am Không là cây cân bằng
m Phái triển vê phía lá
DB-lree
» La cay M-nhanh can bang
a Khi thêm hay loại bỏ khóa có thê phải thực hiện thao