Bài giảng Cấu trúc dữ liệu & giải thuật: B-Cây
lượt xem 2
download
Bài giảng "Cấu trúc dữ liệu và giải thuật: B-Cây" cung cấp cho người học các kiến thức: Cây tìm kiếm m-nhánh, B-Cây, các thao tác trên B-cây. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu & giải thuật: B-Cây
- Giảng viên: Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến 2 Cây tìm kiếm m-nhánh B-Cây Các thao tác trên B-cây Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 1
- 3 m-way search tree m-way tree Cấu trúc dữ liệu và giải thuật – HCMUS 2015 4 Cây tìm kiếm m-nhánh là cây có tính chất: Có tối đa m-1 khóa trong mỗi node (v1, v2,.., vk) (k m-1). Các giá trị khóa trong node được tổ chức có thứ tự (v1 < v2 < ... < vk). Một node có k khóa thì sẽ có k + 1 cây con (các cây con có thể rỗng). Các cây con đặt giữa hai giá trị khóa. Hai cây con nằm ở hai đầu của dãy khóa Mỗi khóa sẽ có cây con trái và cây con phải. Các giá trị của cây con trái sẽ nhỏ hơn giá trị của khóa. Các giá trị của cây con phải sẽ lớn hơn giá trị của khóa. Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 2
- 5 16 25 10 14 20 33 42 11 28 49 Cây tìm kiếm 3-nhánh Cấu trúc dữ liệu và giải thuật – HCMUS 2015 6 Tìm kiếm Thêm phần tử Xóa phần tử Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 3
- 7 Tổng quát hóa từ trường hợp cây nhị phân tìm kiếm X là giá trị cần tìm Nếu X < v1 thì tìm X bên nhánh trái của v1. Ngược lại, nếu X > vk thì tìm X bên nhánh phải của vk. Nếu X = vi thì thông báo tìm thấy. Nếu vi < X < vi+1 thì tìm X tại cây con nằm giữa vi và vi+1. Cấu trúc dữ liệu và giải thuật – HCMUS 2015 8 Tổng quát hóa từ trường hợp cây nhị phân tìm kiếm X là giá trị cần thêm vào cây. Duyệt cây tìm X trên cây. Nếu X đã tồn tại trên cây thì không thêm. Nếu X chưa tồn tại (tìm thấy node rỗng) thì Nếu node cha (của node rỗng tìm thấy) còn có thể thêm X vào thì thêm X vào node cha. Ngược lại, tạo node mới và thêm X vào node đó. Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 4
- 9 16 25 10 14 20 33 42 11 13 28 49 Thêm vào giá trị 13 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 10 16 25 10 14 20 33 42 11 28 37 49 Thêm vào giá trị 37 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 5
- 11 Tương tự cây nhị phân tìm kiếm Tìm vị trí của phần tử X cần xóa. Nếu X nằm giữa hai cây con rỗng thì xóa X. Nếu X có cây con, thay thế X bằng: Phần tử lớn nhất bên cây con trái của X hoặc Phần tử nhỏ nhất bên cây con phải của X Cấu trúc dữ liệu và giải thuật – HCMUS 2015 12 16 25 10 14 20 33 42 11 28 49 Xóa giá trị 20 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 6
- 13 16 25 10 14 33 42 11 28 49 Xóa giá trị 25 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 14 16 28 10 14 33 42 11 25 49 Xóa giá trị 25 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 7
- 15 16 28 10 14 33 42 11 49 Xóa giá trị 25 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 16 B-tree Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 8
- 17 B-cây bậc m là 1 cây tìm kiếm m-nhánh (m>2) thỏa: Nút gốc có ít nhất 1 khóa Tất cả các cây con rỗng ở cùng một mức. Tất cả các node (trừ node gốc) có ít nhất m/2 cây con (có ít nhất m/2 -1 khóa). Giá trị m thường là lẻ. Cấu trúc dữ liệu và giải thuật – HCMUS 2015 18 26 Một B-cây có bậc là 5 6 12 42 51 62 1 2 4 7 8 13 15 18 25 27 29 45 46 48 53 55 60 64 70 90 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 9
- 19 26 Có phải là B-cây? 6 12 42 51 62 1 2 4 13 15 18 25 27 29 45 46 48 53 55 60 64 70 90 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 20 Tìm kiếm Thực hiện tương tự trên cây tìm kiếm m-nhánh. Thêm phần tử Xóa phần tử Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 10
- 21 Thêm phần tử vào node lá. Nếu node lá bị tràn thì Tách thành 2 node mới. Khóa chính giữa được đưa lên node cha. Thực hiện tương tự nếu node cha bị tràn. Nếu node gốc bị tràn thì tạo một node gốc mới (có 1 khóa duy nhất là khóa chính giữa của node cũ) Cấu trúc dữ liệu và giải thuật – HCMUS 2015 22 Tạo B-cây bậc 5 gồm các phần tử theo thứ tự sau: 1, 12, 8, 2, 25, 5, 14, 28, 17 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 11
- 1 12 8 2 25 5 14 28 17 23 1 12 8 2 12 8 12 Thêm 1 Thêm 12 Thêm 8 Thêm 2 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 1 12 8 2 25 5 14 28 17 24 1 2 12 8 12 25 8 1 2 12 25 Thêm 25 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 12
- 1 12 8 2 25 5 14 28 17 25 8 1 2 5 12 14 25 28 Thêm 5, 14, 28 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 1 12 8 2 25 5 14 28 17 26 8 1 2 5 12 14 17 25 28 8 17 1 2 5 12 14 25 28 Thêm 17 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 13
- 27 Thực hiện tương tự cây tìm kiếm m-nhánh. Xét hai trường hợp: Khóa thuộc node lá Khóa thuộc node trong Cấu trúc dữ liệu và giải thuật – HCMUS 2015 28 Khóa thuộc node lá: Xóa khóa khỏi node chứa khóa. Saukhi xóa, nếu node chứa khóa mới xóa có số khóa không đủ (ít hơn m/2-1 khóa) thì: Mượn khóa từ node bên cạnh (Node bên cạnh dư khóa). Nhập khóa với node bên cạnh cùng với khóa cha (Node bên cạnh KHÔNG dư khóa). Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 14
- 29 Khóa thuộc node trong: Khóabị xóa có các node bên nhánh con trái và nhánh con phải có số khóa tối thiểu (m/2-1 khóa): nhập khóa của 2 node con. Ngược lại: tìm phần tử thế mạng và thực hiện cân bằng lại cây như trường hợp xóa khóa thuộc node lá. Cấu trúc dữ liệu và giải thuật – HCMUS 2015 30 Cho B-cây bậc 5: 12 29 52 2 7 9 15 22 31 43 56 69 72 Xóa khóa 2 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 15
- 31 Cho B-cây bậc 5: 12 29 52 7 9 15 22 31 43 56 69 72 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 32 Cho B-cây bậc 5: 12 29 52 7 9 15 22 31 43 56 69 72 Xóa khóa 52 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 16
- 33 Cho B-cây bậc 5: 12 29 56 7 9 15 22 31 43 52 69 72 Xóa khóa 52. Thay thế bằng 56 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 34 Cho B-cây bậc 5: 12 29 56 7 9 15 22 31 43 69 72 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 17
- 35 Cho B-cây bậc 5: 12 29 56 7 9 15 22 31 43 69 72 Xóa khóa 72 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 36 Cho B-cây bậc 5: 12 29 56 7 9 15 22 31 43 69 Ít khóa -> Nhập node Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 18
- 37 Cho B-cây bậc 5: 12 29 7 9 15 22 31 43 56 69 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 38 Cho B-cây bậc 5: 12 29 7 9 15 22 31 43 56 69 Xóa khóa 22 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 19
- 39 Cho B-cây bậc 5: 12 29 7 9 15 31 43 56 69 Mượn khóa Cấu trúc dữ liệu và giải thuật – HCMUS 2015 40 Cho B-cây bậc 5: 12 31 7 9 15 29 43 56 69 Cấu trúc dữ liệu và giải thuật – HCMUS 2015 CuuDuongThanCong.com https://fb.com/tailieudientucntt ©FIT-HCMUS 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 175 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 81 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 58 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 159 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 106 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
38 p | 47 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn