Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8 - Trường ĐH Công nghệ Thông tin
Số trang: 29
Loại file: pdf
Dung lượng: 350.36 KB
Lượt xem: 4
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tiếp tục chương 7, Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8 có nội dung về Cây B-tree. Định nhĩa cây B-tree, khai báo, các phép toán, câu hỏi và bài tập về cây B-tree. Kính mời quý đọc giả tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8 - Trường ĐH Công nghệ Thông tinCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 11 CÂY B-TREE Giới thiệu Cây là một cách tiếp cận hoàn chỉnh để tổ chức dữ liệu trong bộ nhớ. Vậy cây có thể làm việc tốt với hệ thống tập tin hay không?CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 B-tree là cấu trúc dữ liệu phù hợp cho việc lưu trữ ngoài do R.Bayer và E.M.McCreight đưa ra năm 1972. 2 Cây nhiều nhánh tìm kiếm Một cây nhiều nhánh bậc m là cây mà mỗi node có nhiều nhất m cây con. Gọi count (count Cây nhiều nhánh tìm kiếm Tất cả các node con của cây con có gốc tại node con thứ i thì có các giá trị khoá lớn hơn khoá key[i-1] và nhỏ hơn khoá key[i] (0CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Cây nhiều nhánh tìm kiếm Cây nhiều nhánh tìm kiếm (Multiway Search Trees) bậc 5 5 Định nghĩa B-tree Định nghĩa Một B-tree bậc m là cây nhiều nhánh tìm kiếm thỏa các điều kiện sau: (i) Tất cả các node lá cùng mức. (ii) Tất cả các node trung gian (trừ node gốc) có nhiều nhất m cây con và có ít nhất m/2 cây con (khác rỗng).CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 (iii) Mỗi node hoặc là node lá hoặc có k+1 cây con (k là số khoá của node này). (iv) Node gốc có nhiều nhất m cây con hoặc có thể có 2 cây con (Node gốc có 1 khoá và không phải là node lá) hoặc không chứa cây con nào(node gốc có 1 khoá và cũng là node lá). 6CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Định nghĩa B-tree B-tree bậc 5 có 3 mức 7 Khai báo Khai báo: typedef struct { int count; // số khoá của node hiện hành int Key[Order-1];// mảng lưu trữ các khoá của nodeCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 int *Branch[Order]; /* các con trỏ chỉ đến các cây con, Order-Bậc của cây*/ } BNode; //Kiểu dữ liệu của node typedef struct BNode *pBNode // con trỏ node pBNode Root // con tro node goc 8 Các Phép toán C0, K1, C2, K2, …, Cm-1, Km, Cm Các trường hợp xảy ra khi tìm 1 node X. Nếu X không tìm thấy sẽ có 3 trường hợp sau xảy ra: Ki < X < Ki+1. Tiếp tục tìm kiếm trân cây con CiCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Km < X. Tiếp tục tìm kiếm trên Cm X < K1. tiếp tục tìm kiếm trên C0 Quá trình này tiếp tục cho đến khi node được tìm thấy. Nếu đã đi đến node lá mà vẫn không tìm thấy khoá, việc tìm kiếm là thất bại. 9 Các Phép toán Phép toán tìm kiếm Trả về vị trí nhỏ nhất của khóa trong nút hiện tại bắt đầu lớn hơn hay bằng k. int nodesearch (pBNode current, int k) { ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8 - Trường ĐH Công nghệ Thông tinCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 11 CÂY B-TREE Giới thiệu Cây là một cách tiếp cận hoàn chỉnh để tổ chức dữ liệu trong bộ nhớ. Vậy cây có thể làm việc tốt với hệ thống tập tin hay không?CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 B-tree là cấu trúc dữ liệu phù hợp cho việc lưu trữ ngoài do R.Bayer và E.M.McCreight đưa ra năm 1972. 2 Cây nhiều nhánh tìm kiếm Một cây nhiều nhánh bậc m là cây mà mỗi node có nhiều nhất m cây con. Gọi count (count Cây nhiều nhánh tìm kiếm Tất cả các node con của cây con có gốc tại node con thứ i thì có các giá trị khoá lớn hơn khoá key[i-1] và nhỏ hơn khoá key[i] (0CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Cây nhiều nhánh tìm kiếm Cây nhiều nhánh tìm kiếm (Multiway Search Trees) bậc 5 5 Định nghĩa B-tree Định nghĩa Một B-tree bậc m là cây nhiều nhánh tìm kiếm thỏa các điều kiện sau: (i) Tất cả các node lá cùng mức. (ii) Tất cả các node trung gian (trừ node gốc) có nhiều nhất m cây con và có ít nhất m/2 cây con (khác rỗng).CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 (iii) Mỗi node hoặc là node lá hoặc có k+1 cây con (k là số khoá của node này). (iv) Node gốc có nhiều nhất m cây con hoặc có thể có 2 cây con (Node gốc có 1 khoá và không phải là node lá) hoặc không chứa cây con nào(node gốc có 1 khoá và cũng là node lá). 6CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Định nghĩa B-tree B-tree bậc 5 có 3 mức 7 Khai báo Khai báo: typedef struct { int count; // số khoá của node hiện hành int Key[Order-1];// mảng lưu trữ các khoá của nodeCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 int *Branch[Order]; /* các con trỏ chỉ đến các cây con, Order-Bậc của cây*/ } BNode; //Kiểu dữ liệu của node typedef struct BNode *pBNode // con trỏ node pBNode Root // con tro node goc 8 Các Phép toán C0, K1, C2, K2, …, Cm-1, Km, Cm Các trường hợp xảy ra khi tìm 1 node X. Nếu X không tìm thấy sẽ có 3 trường hợp sau xảy ra: Ki < X < Ki+1. Tiếp tục tìm kiếm trân cây con CiCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Km < X. Tiếp tục tìm kiếm trên Cm X < K1. tiếp tục tìm kiếm trên C0 Quá trình này tiếp tục cho đến khi node được tìm thấy. Nếu đã đi đến node lá mà vẫn không tìm thấy khoá, việc tìm kiếm là thất bại. 9 Các Phép toán Phép toán tìm kiếm Trả về vị trí nhỏ nhất của khóa trong nút hiện tại bắt đầu lớn hơn hay bằng k. int nodesearch (pBNode current, int k) { ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu và giải thuật Bài giảng Cây B-tree Cây nhiều nhánh tìm kiếm phép toán Cây B-treeTài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 319 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 166 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 163 0 0 -
3 trang 162 3 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 156 0 0 -
10 trang 138 0 0
-
57 trang 134 1 0
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Một số giải thuật sắp xếp và tìm kiếm
29 trang 120 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 1 - Trần Hạnh Nhi
98 trang 116 0 0 -
49 trang 72 0 0