Tải bản đầy đủ (.pdf) (10 trang)

CHƯƠNG 6 CÂY NHIỀU NHÁNH: B-TREE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (287.89 KB, 10 trang )

Chương 6. Cây nhiều
nhánh: B-Tree

Trần Minh Thái
Email:
Website: www.minhthai.edu.vn

1

Nội dung

1. Khái niệm
2. Đặc điểm và cấu trúc
3. Chèn phần tử vào cây
4. Xóa phần tử khỏi cây

2

Cây nhiều nhánh: M-Phân

• Mỗi node có tối đa M node con
• Một cây M-Phân đầy đủ có chiều cao logMN
• Ví dụ cây 5-Phân đầy đủ:

3

Khái niệm

• Thứ tự các khóa tương tự cây nhị phân tìm kiếm
• Mỗi node có M-1 khóa
• 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

4

B-Tree

B-Tree bậc M là cây M-Phân tìm kiếm có các tính chất:
• Mỗi node (ngoại trừ gốc) có ít nhất M/2 node con
• Node gốc (nếu khơng phải nút lá) có ít nhất 2 nút con
• 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

B-Tree

• Hạn chế số thao tác đọc mỗi lần tìm kiếm trên cây
• Thích hợp cho việc tìm kiếm trên bộ nhớ ngồi
• Chiều cao cây = logMN, tăng M chiều cao cây giảm rất nhanh

6

Chèn node vào cây

Ý tưởng: Tìm vị trí khóa có thể thêm vào cây. Việc
tìm kiếm sẽ kết thúc tại một lá. Khóa mới sẽ được
thêm vào nút lá:
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:

• 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
Q 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 7mà chưa đầy

Ví dụ

• Cho B-tree bậc 5 rỗng
• Hãy xây dựng B-Tree theo thứ tự từ trái sang phải

cho dãy số sau:

1 1 8 2 2 5 1 2 1 7 5 1 4 6 3 2 2 5 5 45
2 5 487 2688 6935

8

1 1 8 2 2 5 1 2 1 7 5 1 4 6 3 2 2 5 5 45
2 5 487 2688 6935

Chèn 1 1

Chèn 12 1 12

Chèn 8 1 8 12


Chèn 2 1 2 8 12

9

1 1 8 2 2 5 1 2 1 7 5 1 4 6 3 2 2 5 5 45
2 5 487 2688 6935

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

1 2 8 12 25

8

1 2 12 25

10


×