tailieunhanh - Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 6 - Trần Minh Thái (2016)

Bài giảng "Cấu trúc dữ liệu và giải thuật - Chương 6: Cây nhiều nhánh B-Tree" trình bày khái niệm về cây nhiều nhánh B-Tree, đặc điểm và cấu trúc, chèn phần tử vào cây, xóa phần tử khỏi cây. . | Chương 6. Cây nhiều nhánh: B-Tree Trần Minh Thái Email: minhthai@ Website: 1 Nội dung Khái niệm Đặc điểm và cấu trúc Chèn phần tử vào cây Xóa phần tử khỏi cây 2 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ớ ngoà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á: Nếu chưa đầy Việc thêm hoàn tất 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 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 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: 8 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 1 9 Chèn 1 1 12 Chèn 12 1 8 12 Chèn 8 1 2 8 12 Chèn 2 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 10 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 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 12 25 1 2 11 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 Thêm 5 8 12 25 1 2 5 Thêm 14 8 12 14 25 1 2 5 12 1 12 8 2 25 5 14 28 17 7 52 16 48 68 3 26 29 53 55 45 Thêm 28 8 12 14 25 28 1 2 5 Thêm . | Chương 6. Cây nhiều nhánh: B-Tree Trần Minh Thái Email: minhthai@ Website: 1 Nội dung Khái niệm Đặc điểm và cấu trúc Chèn phần tử vào cây Xóa phần tử khỏi cây 2 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ớ ngoà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 .