Professional Documents
Culture Documents
Giới thiệu B tree
Giới thiệu B tree
Mộ t trong nhữ ng cấ u trú c dữ liệ u đượ c sử dụ ng nhiề u nhấ t trong khoa họ c má y tính là
tree. Điề u nà y đã dẫ n đế n nhiề u phiê n bả n khá c nhau đượ c phá t triể n. Dướ i đâ y, chú ng
ta sẽ là m quen tố t hơn vớ i cá i gọ i là B-Tree. Để là m như vậ y, trướ c tiê n chú ng ta sẽ hiể u
cá c phầ n khá c nhau củ a nó và cấ u trú c củ a nó . Sau đó , chú ng ta sẽ xem cá ch chú ng ta có
thể thự c hiệ n cá c thao tá c khá c nhau trê n chú ng, tứ c là tìm kiế m, chè n và xó a. Cuố i
cù ng, chú ng tô i sẽ kế t thú c bằ ng phầ n giả i thích về ưu và nhượ c điể m củ a việ c sử dụ ng
B-tree để lưu trữ dữ liệ u.
1. Lý Thuyế t về B-tree
B-Tree đượ c gọ i là tree câ n bằ ng, nghĩa là tấ t cả cá c đườ ng dẫ n từ gố c đế n lá đề u có
cù ng độ dà i. Nó có thể đượ c chia thà nh ba phầ n: gố c, (cá c) lớ p trung gian và lá . Chú ng
ta có thể hình dung nó :
5. Xó a trong B-Tree
Xó a trong B-Tree phứ c tạ p hơn nhiề u so vớ i chè n. Tù y thuộ c và o vị trí củ a nú t chứ a đích
cầ n xó a, chú ng ta cầ n xem xé t mộ t số trườ ng hợ p. Ta có thể xé t cá c trườ ng hợ p sau:
Trường hợp 1 — x nằ m trong nú t lá
Điề u nà y có thê m hai trườ ng hợ p
Trường hợp 1.1 — nú t có 2 hoặ c 3 phầ n tử dữ liệ u:
Xó a x. Nế u nú t có 2 phầ n tử dữ liệ u, thì nó sẽ chỉ chứ a 1. Nế u nó chứ a 3 phầ n tử dữ liệ u,
thì nó sẽ chỉ chứ a 2 phầ n tử sau. Chú ng ta có thể minh họ a:
#define MAX 3
#define MIN 2
struct B_tree {
int data[MAX + 1], count;
struct B_tree *link[MAX + 1];
};
return;
}
int main() {
int data, ch;
add(6);
add(8);
add(10);
add(13);
add(15);
add(19);
add(14);
add(18);
add(23);
add(25);
traverse(root);
printf("\n");
find_node(18, &ch, root);
}
Kết quả:
6 8 10 13 14 15 18 19 23 25 Đã tìm thấy 18