Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 6 - Trần Minh Thái (2016)

26 6 0
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 6 - Trần Minh Thái (2016)

Đ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

Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 6: Cây nhiều nhánh B-Tree trình bày khái niệm về cây nhiều nhánh B-Tree, đặc điểm và cấu trúc, chèn phần tử vào cây, xóa phần tử khỏi cây. Mời các bạn cùng tham khảo.

Chương Cây nhiều nhánh: B-Tree Trần Minh Thái Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Nội dung Khái niệm Đặc điểm cấu trúc Chèn phần tử vào Xóa phần tử khỏi Cây nhiều nhánh: M-Phân Mỗi node có tối đa M node Một M-Phân đầy đủ có chiều cao logMN  Ví dụ 5-Phân đầy đủ: Khái niệm  Thứ tự khóa tương tự nhị phân tìm kiếm  Mỗi node có M-1 khóa  M lớn thấp  Giữ tính chất cân tìm kiếm M-Phân: B-Cây B-Tree B-Tree bậc M M-Phân tìm kiếm có tính chất:     Mỗi node (ngoại trừ gốc) có M/2 node Node gốc (nếu nút lá) có nút Mọi nút nằm mức Các khóa xếp theo tìm kiếm B-Tree    Hạn chế số thao tác đọc lần tìm kiếm Thích hợp cho việc tìm kiếm nhớ Chiều cao = logMN, tăng M chiều cao giảm nhanh Chèn node vào Ý tưởng: Tìm vị trí khóa thêm vào Việc tìm kiếm kết thúc Khóa thêm vào nút lá: Nếu chưa đầy  Việc thêm hoàn tất Nếu đầy  Phân đôi nút cần thêm:  Tách nút làm hai nút cạnh mức  Chuyển phần tử lên nút cha Q trình phân đơi nút lan truyền ngược gốc kết thúc có nút cha cần thêm khóa từ lên mà chưa đầy Ví dụ  Cho B-tree bậc rỗng  Hãy xây dựng B-Tree theo thứ tự từ trái sang phải cho dãy số sau: 12 25 14 28 17 52 16 48 68 26 29 53 55 45 12 25 14 28 17 Chèn 1 Chèn 12 12 Chèn 8 Chèn 2 52 16 48 68 12 12 26 29 53 55 45 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Do nút gốc đầy (4 phần tử)  Chèn 25 vào nút gốc tách nút gốc thành nút đưa khóa lên tạo thành nút gốc 12 25 12 25 10 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 28 12 14 25 28 Thêm 17, nút bên phải đầy nên phân đôi đưa nút lên nút cha (nút gốc) 17 12 14 25 12 28 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 17 12 14 25 28 Thêm 52 17 12 14 25 13 28 52 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 16 17 12 14 16 25 28 52 Thêm 48 12 17 14 16 25 14 28 48 52 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 68, nút bên phải đầy nên phân đôi nút đưa nút lên nút cha (nút gốc) 17 12 14 48 16 25 28 52 68 52 68 Thêm 3, nút bên trái đầy nên phân đôi nút đưa nút lên nút cha (nút gốc) 12 17 14 48 16 25 15 28 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 26 12 17 14 48 16 25 26 28 52 68 28 29 52 68 Thêm 29 12 14 17 16 48 25 26 16 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 53 12 14 17 16 48 25 26 28 29 28 29 52 52 53 68 Thêm 55 12 14 16 17 25 48 26 17 53 55 68 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 45, nút thứ đầy nên phân đôi đưa nút lên nút cha, nút cha đầy nên phân đôi tiếp nút cha đưa nút lên trên, tạo thành nút gốc 17 12 14 16 25 26 29 18 28 48 45 52 53 55 68 Bài tập áp dụng Cho dãy số: 1, 3, 9, 2, 4, 10, 25, 30, 11, 40, 21, 8, 7, 6, 19, 5, 30, 12, 15, 16 Hãy trình bày bước vẽ B-Tree bậc 19 Xóa khóa Nếu khóa cần xóa nằm nút  Xóa Nếu khóa cần xóa khơng nằm nút  Xóa khóa cần xóa, đưa khóa có giá trị gần từ nút lên thay cho khóa xóa 20 Xóa khóa Nếu trường hợp (1) hay (2), nút cịn lại q khóa xét nút anh em kế cận nút xét: Nếu nút anh em kế cận nút xét có số lượng khóa nhiều số lượng tối thiểu, đưa khóa nút anh em lên nút cha đưa khóa nút cha xuống nút có khóa q Nếu tất nút anh em kế cận nút xét có số lượng khóa vừa đủ số lượng tối thiểu, chọn nút anh em kế cận hợp nút anh em với nút có khóa q Nếu nút cha trở nên thiếu khóa, lặp lại q trình 21 17 Xóa 68 12 14 16 25 26 29 28 48 45 52 53 55 17 Nút Trường hợp 1 12 14 16 25 26 29 28 48 45 52 Vẫn đủ lượng theo yêu 22 cầu 53 55 68 17 Khơng phải nút Xóa 8 12 14 16 25 26 29 28 48 45 52 28 48 45 52 53 55 53 55 17 Trường hợp 12 Cịn q khóa 14 16 25 26 29 23 17 Xóa Trường hợp 28 48 45 52 Hợp 12 14 16 25 29 26 53 55 17 Cịn q khóa 12 14 16 25 26 29 24 28 48 45 52 53 55 17 Xóa Trường hợp 28 48 45 52 Hợp 12 14 12 14 16 25 17 16 26 28 25 26 29 53 55 48 29 25 45 52 53 55 Bài tập áp dụng Cho B-Tree bậc Hãy trình bày bước xóa node 1, 2, 3, 4, 5, 11 26 ... gốc) 12 17 14 48 16 25 15 28 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 26 12 17 14 48 16 25 26 28 52 68 28 29 52 68 Thêm 29 12 14 17 16 48 25 26 16 12 25 14 28 17 52 16 48 68 26 29 53 55 45... 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 17 12 14 25 28 Thêm 52 17 12 14 25 13 28 52 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 16 17 12 14 16 25 28 52 Thêm 48 12 17 14 16 25 14 28 48 52... 52 16 48 68 26 29 53 55 45 Thêm 53 12 14 17 16 48 25 26 28 29 28 29 52 52 53 68 Thêm 55 12 14 16 17 25 48 26 17 53 55 68 12 25 14 28 17 52 16 48 68 26 29 53 55 45 Thêm 45, nút thứ đầy nên phân

Ngày đăng: 21/05/2021, 14:09

Từ khóa liên quan

Mục lục

  • Slide 1

  • Nội dung

  • Cây nhiều nhánh: M-Phân

  • Khái niệm

  • B-Tree

  • B-Tree

  • Chèn node vào cây

  • Ví dụ

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Bài tập áp dụng

  • Xóa khóa trên cây

Tài liệu cùng người dùng

Tài liệu liên quan