B tree cây tìm kiếm nhiều đường
B-CÂY Chương Cây tìm kiếm nhiều đường Cây tìm kiếm nhiều đường (Multiway Search Trees): – Cây tìm kiếm cấp m (m > 2) mở rộng nhị phân tìm kiếm BST, nút có tối đa m – Một ứng dụng tìm kiếm nhiều đường sử dụng để truy xuất nhớ theo nguyên tắc: “Số lần truy xuất tốt” – Để thực điều phần tử nhớ ngồi truy xuất tồn nhóm phần tử truy xuất theo Cây tìm kiếm nhiều đường – Điều nầy dẫn đến chia thành (gọi trang) phần tử trang truy xuất đồng thời Ví dụ, nhị phân chia thành trang, trang có nút: Cây tìm kiếm nhiều đường Giả sử trang có 100 nút có triệu phần tử trung bình cần lần truy xuất thay lần BST B-cây (Bayer tree) Ta nhận thấy cân đòi hỏi phải cân lại trình bị biến đổi Việc cân bao gồm nhiều thao tác phức tạp tốn thời gian Một tiêu chuẩn R Bayer đưa năm 1970 trang (trừ trang gốc) chứa n nút nhiều 2*n nút, với n số cho trước gọi cấp B-cây Cấu trúc liệu B-cây cấp n có đặc tính sau: B-cây – Mỗi trang có tối đa 2*n phần tử – Mỗi trang, ngoại trừ trang gốc chứa n phần tử Trang gốc phép chứa 1, 2, , 2*n phần tử – Mỗi trang trang (khơng có con) có m + trang con, với m số phần tử trang – Tất trang phải có mức – Mỗi phần tử trang có thứ tự theo khố tăng dần từ trái qua phải B-cây Ví dụ: B-cây cấp có ba mức sau: Tất trang chứa 2, 3, hay phần tử ngoại trừ trang gốc chứa phần tử Tất trang xuất mức 37 B-cây Nếu dồn B-cây lại thành mức cách chèn trang vào nút trang cha chúng giá trị theo thứ tự tăng dần Đây mở rộng tự nhiên tìm kiếm nhị phân Cài đặt B-cây const int N = 2; // cấp B-cây const int NN = 4; // kích thước trang typedef struct Page* ref; struct Node { int key; // giá trị nút ref pR; // trỏ đến trang bên phải int count; // số lần xuất khóa // có giá trị key }; Cài đặt B-cây struct Page { int m; // số phần tử trang ref pL; // trỏ đến trang bên trái Node e[NN]; // nút (phtử) trang }; ref root; // trỏ đến trang gốc 10 .. .Cây tìm kiếm nhiều đường Cây tìm kiếm nhiều đường (Multiway Search Trees): – Cây tìm kiếm cấp m (m > 2) mở rộng nhị phân tìm kiếm BST, nút có tối đa m – Một ứng dụng tìm kiếm nhiều đường. .. trung b? ?nh cần lần truy xuất thay lần BST B- cây (Bayer tree) Ta nhận thấy cân đòi hỏi phải cân lại trình b? ?? biến đổi Việc cân bao gồm nhiều thao tác phức tạp tốn thời gian Một tiêu chuẩn R Bayer... xuất theo Cây tìm kiếm nhiều đường – Điều nầy dẫn đến chia thành (gọi trang) phần tử trang truy xuất đồng thời Ví dụ, nhị phân chia thành trang, trang có nút: Cây tìm kiếm nhiều đường Giả