Professional Documents
Culture Documents
Bài 7 Cây Nhiều Nhánh
Bài 7 Cây Nhiều Nhánh
Nội dung
1 2
1 2
Mỗi node có tối đa M node con Thứ tự các khóa tương tự cây nhị phân tìm kiếm
Một cây M-Phân đầy đủ có chiều cao logMN
Mỗi node có M-1 khóa
Ví dụ cây 5-Phân đầy đủ:
M càng lớn cây càng thấp
Giữ tính chất cân bằng trên cây tìm kiếm M-Phân: B-
Cây
3 4
3 4
1
01/09/2021
B-Tree B-Tree
B-Tree bậc M là cây M-Phân tìm kiếm có các Hạn chế số thao tác đọc mỗi lần tìm kiếm
tính chất: trên cây
Mỗi node (ngoại trừ gốc) có ít nhất M/2 Thích hợp cho việc tìm kiếm trên bộ nhớ
khóa ngoài
Node gốc (nếu không phải nút lá) có ít nhất
2 nút con Chiều cao cây = logMN, tăng M chiều cao
cây giảm rất nhanh
Mọi nút lá đều nằm cùng một mức
Các khóa và cây con được sắp xếp theo cây
tìm kiếm
5 6
5 6
Ý tưởng: Tìm vị trí khóa có thể thêm vào cây. Việc tìm Cho B-tree bậc 5 rỗng
kiếm sẽ kết thúc tại một lá. Khóa mới sẽ được thêm vào Hãy xây dựng B-Tree theo thứ tự từ trái sang phải cho
nút lá: dãy số sau:
1. Nếu chưa đầy Việc thêm hoàn tất
2. Nếu đầy Phân đôi nút lá cần thêm: 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45
Tách nút lá ra làm hai nút cạnh nhau trong cùng một
mức
Chuyển phần tử giữa lên nút cha
Quá trình phân đôi các nút có thể được lan truyền ngược
về gốc và kết thúc khi có một nút cha nào đó cần được
thêm một khóa từ dưới lên mà chưa đầy
7 8
7 8
2
01/09/2021
1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45
Chèn 1 1 Do nút gốc đã đầy (4 phần tử) Chèn 25 vào nút gốc sẽ
tách nút gốc thành 2 nút và đưa khóa ở giữa lên trên tạo
thành nút gốc mới
Chèn 12 1 12 1 2 8 12 25
Chèn 8 1 8 12
8
Chèn 2 1 2 8 12 1 2 12 25
9 10
9 10
1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45
Thêm 5 Thêm 28
8 8
1 2 5 12 25 1 2 5 12 14 25 28
Thêm 17, do nút lá bên phải đã đầy nên phân đôi và đưa
Thêm 14 nút giữa lên trên nút cha (nút gốc)
8
8 17
1 2 5 12 14 25
1 2 5 12 14 25 28
11 12
11 12
3
01/09/2021
1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45
Thêm 7 Thêm 16
8 17 8 17
1 2 5 7 12 14 25 28 1 2 5 7 12 14 16 25 28 52
Thêm 52 Thêm 48
8 17 8 17
1 2 5 7 12 14 25 28 52 1 2 5 7 12 14 16 25 28 48 52
13 14
13 14
1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45
Thêm 68, do nút lá bên phải đã đầy nên phân đôi nút lá và Thêm 26
đưa nút giữa lên nút cha (nút gốc)
8 17 48 3 8 17 48
1 2 5 7 12 14 16 25 28 52 68 1 2 5 7 12 14 16 25 26 28 52 68
1 2 5 7 12 14 16 25 28 52 68 1 2 5 7 12 14 16 25 26 28 29 52 68
15 16
15 16
4
01/09/2021
1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45
Thêm 53 Thêm 45, do nút lá thứ 3 đầy nên phân đôi và đưa nút
3 8 17 48 giữa lên trên nút cha, nút cha cũng đầy nên phân đôi tiếp
nút cha và đưa nút giữa lên trên, tạo thành nút gốc mới
1 2 5 7 12 14 16 25 26 28 29 52 53 68
17
Thêm 55
3 8 28 48
3 8 17 48
1 2 5 7 12 14 16 25 26 28 29 52 53 55 68 1 2 5 7 12 14 16 25 26 29 45 52 53 55 68
17 18
17 18
Cho dãy số: 1. Nếu khóa cần xóa nằm ở nút lá Xóa
1, 3, 9, 2, 4, 10, 25, 30, 11, 40, 21, 8, 7, 6, 19, 2. Nếu khóa cần xóa không nằm ở nút lá
5, 35, 12, 15, 16 Xóa khóa cần xóa, đưa khóa có giá trị gần
Hãy trình bày từng bước tạo cây B-Tree bậc 5 nhất từ nút lá lên thay thế cho khóa đã xóa
19 20
19 20
5
01/09/2021
17
Xóa 68
Xóa khóa trên cây
3 8 28 48
Nếu trong trường hợp (1) hay (2), nút lá còn lại
quá ít khóa thì xét các nút anh em kế cận nút đang
xét: 1 2 5 7 12 14 16 25 26 29 45 52 53 55 68
3. Nếu tồn tại nút anh em kế cận nút đang xét có
số lượng khóa nhiều hơn số lượng tối thiểu, 17 Nút lá
đưa một khóa của nút anh em lên nút cha và Trường hợp 1
đưa khóa ở nút cha xuống nút lá có khóa quá ít
4. Nếu tất cả các nút anh em kế cận nút đang xét 3 8 28 48
đều có số lượng khóa vừa đủ số lượng tối
thiểu, chọn một nút anh em kế cận và hợp nhất
nút anh em này với nút lá có khóa quá ít. 1 2 5 7 12 14 16 25 26 29 45 52 53 55
Nếu nút cha thiếu khóa, lặp lại quá trình này
21
Vẫn còn đủ lượng
theo yêu cầu 22
21 22
1 2 5 7 12 14 16 25 26 29 45 52 53 55 1 2 5 12 14 16 25 26 29 45 52 53 55
17
17
Trường hợp 2
Còn quá ít khóa
3 7 28 48
7 28 48
1 2 5 12 14 16 25 26 29 45 52 53 55
1 2 3 5 12 14 16 25 26 29 45 52 53 55
Còn quá ít khóa 23 24
23 24
6
01/09/2021
17
Xóa 8
Bài tập áp dụng
Trường hợp 4
7 28 48
Hợp nhất
7 17 28 48
1 2 3 5 12 14 16 25 26 29 45 52 53 55
25 26
25 26