Slide bài giảng - CTDL2-16TH-16PM ď Chuong 4 BTree tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn...
TRƯỜNG ĐẠI HỌC AN GIANG KHOA KỸ THUẬT- CÔNG NGHỆ - MÔI TRƯỜNG CẤU TRÚC DỮ LIỆU 1 B-Tree Giới thiệu Định nghĩa B-Tree Các phép toán B-Tree Giới thiệu Cây 2-3-4 ví dụ nhiều nhánh, nhiều nhánh node có nhiều hai node nhiều mục liệu Một loại khác nhiều nhánh B-tree, hiệu liệu nằm nhớ Định nghĩa B-Tree Một B-tree bậc n có đặc tính sau: i) Mỗi node có tối đa 2*n khố ii) Mỗi node ( khơng node gốc) có n khố iii) Mỗi node node có m+1 node (m số khố trang này) iv) Các khóa tăng dần từ trái sang phải v) Các nút nằm mức Định nghĩa B-Tree Ví dụ: B-tree bậc có mức Ưu điểm B-Tree B-Tree dạng cân bằng, phù hợp với việc lưu trữ đĩa B_Tree tiêu tốn số phép truy xuất đĩa tối thiểu cho thao tác Có thể quản lý số phần tử lớn Các phép tốn B-Tree Tìm phần tử có khóa X Thêm khố vào vào B –Tree Xóa khố nút Tìm kiếm phần tử có khóa X Khố cần tìm X Với m đủ lớn ta sử dụng phương pháp tìm kiếm nhị phân, m nhỏ ta sử dụng phuơng pháp tìm kiếm Nếu X khơng tìm thấy có trường hợp sau xảy ra: i) Ki < X < Ki+1 Tiếp tục tìm kiếm Ci ii) Km < X Tiếp tục tìm kiếm Cm iii) X < K1 tiếp tục tìm kiếm C0 Quá trình tiếp tục node tìm thấy Nếu đến node mà khơng tìm thấy khố, việc tìm kiếm thất bại ,C1, Thêm nút vào B-Tree Tính chất B-Tree: node có số khóa Thêm nút có khóa X vào B-Tree Thêm X vào nút Sau thêm, nút đầy: – Tách nút làm đôi – Chuyển phần tử lên nút cha lan truyền ngược gốc – Nếu gốc bị tách, đặt mức sâu Thêm nút vào B-Tree Nếu số khóa lớn 2n tách node: Đưa phần tử lên node cha Tạo thêm node Chuyển dời nửa phần tử sang node Tiếp tục lan truyền node cha (nếu node cha sau thêm > 2n phần tử thực tách node trên) 10 Ví dụ xóa Giả sử xây dựng B-Tree sau: Xóa 48 17 Ví dụ xóa Xóa 15: Xóa 44 (ghép node) 18 Ví dụ xóa Xóa (mượn node phải): 19 Ví dụ xóa Xóa 24, ta đem khóa 22 lên thay Khi node 20,22 20 (phạm), ta phải đem khóa 22 trở lại node 20,22 Mang 28 lên thêm 20 Ví dụ xóa Xóa 20: Mượn node phải phần tử Tức mang 32 lên cha, 28 xuống node có khóa 22 21 Ví dụ xóa Xóa 28: Xóa 9: 22 Ví dụ xóa Xóa 37: Xóa 17: 23 B-tree: Cân lại sau xóa Nếu nút anh em kế cận nút xét có số lượng khóa nhiều số lượng tối thiểu Đưa khóa nút anh em lên nút cha Đưa khóa nút cha xuống nút xét Nếu tất nút anh em kế cận nút xét có số lượng khóa vừa đủ số lượng tối thiểu Chọn nút anh em kế cận hợp nút anh em với nút xét với khóa tương ứng nút cha Nếu nút cha trở nên thiếu khóa, lặp lại q trình 24 Trường hợp: Nút anh em kế cận đủ khóa để bổ sung 25 Trường hợp: Nút xét nút anh em kế cận q khóa 26 VD – Xoá khoá B-Tree cấp Ví dụ ta có sau: Xố nút 26 ta làm sao: 27 VD – Xoá khoá B-Tree cấp Dùng 28 để thay 28 VD – Xoá khoá B-Tree cấp Xố khóa 22 dùng 24 thay thế, thiếu nút 29 VD – Xoá khoá B-Tree cấp Xố khóa 22 dùng 24 thay thế, thiếu node lá: 26 đem xuống node thiếu, 28 đem lên thay 26 30 Luyện tập Cho B-tree bậc gồm khóa sau (chèn vào theo thứ tự): 3, 7, 9, 23, 45, 1, 5, 14, 25, 24, 13, 11, 8, 19, 4, 31, 35, 56 Thêm khóa: 2, 6, 12, 10, 11 Xóa khóa: 4, 5, 7, 3, 14 31 ... 40 C D 12 Thêm vào Ví dụ : Xem q trình tạo B-Tree bậc từ dãy khóa sau: 20; 40 10 30 15; 35 26 18 22; 5; 13 46 27 32; 38 24 45 25 13 20; 40 10 30 15; 35 26 18 22; 5; 13 46 27 32; 38 24. .. 15; 35 26 18 22; 5; 13 46 27 32; 38 24 45 25 14 20; 40 10 30 15; 35 26 18 22; 5; 13 46 27 32; 42 24 45 25 15 Xóa phần tử B-Cây bậc n Khóa cần xóa node -> Xóa bình thường Khóa cần hủy khơng...B-Tree Giới thiệu Định nghĩa B-Tree Các phép toán B-Tree Giới thiệu Cây 2-3 -4 ví dụ nhiều nhánh, nhiều nhánh node có nhiều hai node nhiều mục liệu Một loại khác nhiều nhánh B-tree,