1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5.1 - ThS. Nguyễn Hà Giang

53 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Chương này trình bày kiến thức cơ bản về cấu trúc cây. Chương này sẽ tập trung về cây đa phân/cây đa nhánh, cây đa phân tìm kiếm, cây Top-Down và B-Tree. Mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.

Tree Structure Nguyễn Hà Giang - 2008 ThS Nguyễn Hà Giang Hutech - FIT Nội dung      Cấu trúc Cây nhị phân Cây nhị phân tìm kiếm Cây nhị phân tìm kiếm cân AVL Phần mở rộng (cây đa phân)   Cây Top-Down B-Tree Nguyễn Hà Giang - 2008 Phần mở rộng Cây đa phân Top-down, B-Tree Nguyễn Hà Giang - 2008 Phần mở rộng  Cây đa phân/cây đa nhánh    Có nút nút gốc Mỗi nút có n nút Cây đa phân tìm kiếm    Mỗi nút đa phân tìm kiếm có nhiều khố nhiều nhánh Số khố nhánh VD: có khố có nhánh Nguyễn Hà Giang - 2008 Phần mở rộng  Cây đa phân tìm kiếm k1 Cây S1 Nguyễn Hà Giang - 2008 k2 Cây S2 Cấu trúc nút kn-1 Cây Sn Cây đa phân tìm kiếm  Định nghĩa đa phân tìm kiếm  Tại nút phải thoả điều kiện     Tất khoá nhánh s1 nhỏ hay k1 Tất khóa nhánh si (1≤ i ≤n-1) lớn khoá ki-1 nhỏ hay ki Tất khóa nhánh sn lớn khóa kn-1 Cây nhị phân tìm kiếm đa phân tìm kiếm có bậc 2! Nguyễn Hà Giang - 2008 Cây đa phân tìm kiếm Nút cha 120 150 180 k ≤ 120 k > 180 120 < k ≤ 150 150 < k ≤ 180 Nguyễn Hà Giang - 2008 Cây đa phân tìm kiếm  Cây đa phân tìm kiếm bậc 3/cây tam phân tìm kiếm 50 100 ≤ 50 10 30 15 20 Nguyễn Hà Giang - 2008 >100 60 40 150 200 120 130 160 210 Cây đa phân tìm kiếm  Cây đa phân tìm kiếm thơng dụng    Cây top-down B-tree Cây top-down   Là đa phân tìm kiếm Tất nút ko đủ (hay ko đầy) nút lá! Nguyễn Hà Giang - 2008 Cây Top-Down  Cây Top-down bậc Nút không đầy phải nút 50 100 10 30 15 20 Nguyễn Hà Giang - 2008 60 40 150 200 120 130 160 210 10 B-Tree  Chèn khoá vào 50 10 30 23 58 15 17 20 150 200 40 44 45 60 70 130 160 180 210 250 {5 8} trở thành thứ nút {4 10 30} Nguyễn Hà Giang - 2008 39 B-Tree  Chèn khoá 41 vào 50 10 30 23 58 15 17 20 Nguyễn Hà Giang - 2008 150 200 40 44 45 60 70 130 160 180 210 250 40 B-Tree  Chèn khoá 41 vào 50 10 30 23 58 15 17 20 Nguyễn Hà Giang - 2008 150 200 40 41 44 45 60 70 130 160 180 210 250 41 B-Tree  Chèn khoá 43 vào 50 10 30 23 58 15 17 20 Nguyễn Hà Giang - 2008 150 200 40 41 44 45 60 70 130 160 180 210 250 42 B-Tree  Chèn khoá 43 vào 50 10 30 23 58 15 17 20 40 41 43 44 45 150 200 60 70 130 160 180 210 250 Tách nút Nguyễn Hà Giang - 2008 43 B-Tree  Chèn khoá 43 vào 50 10 30 43 23 58 15 17 20 Nguyễn Hà Giang - 2008 40 41 150 200 44 45 60 70 130 160 180 210 250 44 B-Tree  Chèn khoá 46, 48 vào 50 10 30 43 23 58 15 17 20 Nguyễn Hà Giang - 2008 40 41 150 200 44 45 60 70 130 160 180 210 250 45 B-Tree  Chèn khoá 46, 48 vào 50 10 30 43 23 58 15 17 20 Nguyễn Hà Giang - 2008 40 41 150 200 44 45 46 48 60 70 130 160 180 210 250 46 B-Tree  Chèn khoá 47 vào 50 10 30 43 23 58 15 17 20 40 41 150 200 44 45 46 47 48 60 70 130 160 180 210 250 Chia nút Nguyễn Hà Giang - 2008 47 B-Tree  Chèn khoá 47 vào 50 Chia nút 10 30 43 46 23 58 15 17 20 Nguyễn Hà Giang - 2008 40 41 150 200 44 45 47 48 60 70 130 160 180 210 250 48 B-Tree  Chèn khoá 47 vào 30 50 10 23 58 150 200 43 46 15 17 20 Nguyễn Hà Giang - 2008 40 41 44 45 47 48 60 70 130 160 180 210 250 49 B-Tree  Nhận xét cân bằng:    B-Tree    B-Tree: upward split BST: downward split Tốt cho việc: exact match search Không tốt: range search  cải tiến với B+-Tree Ứng dụng   Tổ chức liệu lưu nhớ liệu lớn Ổn định, truy xuất nhanh với số lần truy xuất thấp Nguyễn Hà Giang - 2008 50 B-Tree  Các loại B-Tree cải tiến để tối ưu nhớ  B*-Tree bậc m    Là B-Tree bậc m, tất nút trừ gốc đầy 2/3 Hiệu suất dùng nhớ 67% Compact B*-Tree   Tất nút đầy (ngoại trừ số nút cuối) Ít dùng giải thuật thêm khố vào phức tạp, chi phí chuyển compact Btree lớn Nguyễn Hà Giang - 2008 51 B-Tree  B+-Tree   Tất khóa có mặt nút Các nút liên kết với từ trái sang phải dạng DSLK 41 15 22 32 12 15 18 22 49 58 25 27 30 32 35 38 41 45 49 51 55 58 60 63 Các khoá nằm nút Nguyễn Hà Giang - 2008 52 Đọc thêm  Tài liệu tham khảo http://en.wikipedia.org/wiki/B-tree  http://www.bluerwhite.org/btree/  http://www.nist.gov/dads/HTML/btree html  http://www.nist.gov/dads/HTML/bstart ree.html  Nguyễn Hà Giang - 2008 53 ... int i, nt; nt=p->NumTrees; p->NumTrees=nt+1; for(i=nt-1;i>pos ;i ){ p->Key[i]= p->Key[i-1]; } p->Key[pos] = k; } Nguyễn Hà Giang - 2008 25 Cây Top-Down  Insert: chèn khóa vào Top-Down    Nếu... nRight chèn vào nút cha Nguyễn Hà Giang - 2008 32 B-Tree  Chèn khoá 45 vào 50 10 30 2348 15 17 20 Nguyễn Hà Giang - 2008 150 200 40 44 60 70 130 160 180 210 250 33 B-Tree  Chèn khoá 45 vào 50 10... pTree->NumTrees; for(i=0; i< nt-1; i++){ ShowTree(pTree->Son[i]); printf("%8d", pTree->Key[i]); } ShowTree(pTree->Son[nt-1]); } } Nguyễn Hà Giang - 2008 24 Cây Top-Down  InsertLeaf: chèn khoá vào

Ngày đăng: 11/05/2021, 19:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN