1. Trang chủ
  2. » Tất cả

Cấu trúc dữ liệu cây m nhánh vs b cây chapter05 adt m tree

55 6 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

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 1,51 MB

Nội dung

CẤU TRÚC DỮ LIỆU CÂY M-NHÁNH VS B CÂY Bùi Tiến Lên 01/01/2017 CÂY M-NHÁNH Cây m-nhánh Định nghĩa Cây m-nhánh (m-way tree) tìm kiếm có tính chất sau I I Mỗi nút có I tối thiểu khóa I tối đa m − khóa có giá trị phân biệt Các khóa nút thứ tự tăng dần Spring 2017 Data structure & Algorithm Cây m-nhánh (cont.) Định nghĩa I Mỗi nút có k khóa {v1 , , vk } có k + {T1 , , Tk+1 }, rỗng I Cây đầu T chứa khóa v khoảng v ∈ (−∞, v1 ) I Cây cuối Tk+1 chứa khóa v khoảng v ∈ (vk , ∞) I Spring 2017 (2) Cây Ti , i = 2, , k chứa khóa v khoảng v ∈ (vi , vi+1 ) I (1) (3) Mỗi khóa vi có trái Ti phải Ti+1 Data structure & Algorithm Minh họa v1 T1 vi vi+1 Ti vk Tk+1 Hình 1: Nút khóa Spring 2017 Data structure & Algorithm Minh họa (cont.) v1 vi Ti vi+1 vk Ti+1 Hình 2: Khóa trái phải Spring 2017 Data structure & Algorithm Minh họa (cont.) 16 18 22 20 26 24 28 30 Hình 3: Cây 3-nhánh Spring 2017 Data structure & Algorithm Các thao tác m-nhánh Đối với m-nhánh có thao tác I Duyệt khóa I Tìm khóa I Thêm khóa vào I Xóa khóa khỏi Spring 2017 Data structure & Algorithm Thao tác duyệt Ta xem đồ thị tổng quát áp dụng thuật toán duyệt đồ thị để duyệt Có hai thuật toán duyệt I Duyệt theo chiều sâu (Depth First Traversal - DFT ) I Duyệt theo chiều rộng (Breath First Traversal - BFT ) Spring 2017 Data structure & Algorithm Duyệt theo chiều sâu PROCEDURE Dft(r ) BEGIN Thăm nút r FOR nút u r DO IF u chưa thăm THEN DFT(u) END Spring 2017 Data structure & Algorithm 10 Xóa khóa khỏi I I Xóa khóa v khỏi nút N   Nếu nút N sau xóa bị “hụt” khóa (có m−1 khóa) I Trường hợp 1: Nếu nút anh em kế bên có dư khóa (nhiều   m−1 khóa) “mượn khóa” I Trường hợp 2: Nếu nút anh em kế bên khơng dư khóa “nhập nút” với nút anh em Spring 2017 Data structure & Algorithm 39 Xóa khóa khỏi (cont.) I Trường hợp 1: I Nút N = {N , , N } thiếu khóa t I Nút L = {L , , L } “anh em bên trái” dư khóa s I N nút gốc phải khóa p L nút gốc trái p Spring 2017 Data structure & Algorithm 40 Xóa khóa khỏi (cont.) L1 Ls p N1 Nt L1 Ls Ls-1 T p N1 Nt T Hình 22: Xử lý “mượn khóa” Spring 2017 Data structure & Algorithm 41 Xóa khóa khỏi (cont.) I Trường hợp 2: I Nút N = {N , , N } thiếu khóa khơng có nút anh t em dư khóa I Nút L = {L , , L } s I N nút gốc phải khóa p L nút gốc trái p Spring 2017 Data structure & Algorithm 42 Xóa khóa khỏi (cont.) L1 p Ls L1 Ls N1 Nt Nt p N1 Hình 23: Xử lý “nhập nút” Spring 2017 Data structure & Algorithm 43 Minh họa xóa phần tử 18 22 20 26 24 28 30 Hình 24: B-cây 3-nhánh Spring 2017 Data structure & Algorithm 44 Minh họa xóa phần tử (cont.) 18 22 20 24 xx 28 30 Hình 25: Xóa khóa 26: nút đỏ thiếu khóa Spring 2017 Data structure & Algorithm 45 Minh họa xóa phần tử (cont.) 18 22 20 28 24 30 Hình 26: Xóa khóa 26: mượn khóa (trường hợp 1) Spring 2017 Data structure & Algorithm 46 Minh họa xóa phần tử (cont.) 22 xx 20 28 24 30 Hình 27: Xóa khóa 18: nút đỏ thiếu khóa Spring 2017 Data structure & Algorithm 47 Minh họa xóa phần tử (cont.) xx 22 20 28 24 30 Hình 28: Xóa khóa 18: nhập nút (trường hợp 2), nút đỏ thiếu khóa Spring 2017 Data structure & Algorithm 48 Minh họa xóa phần tử (cont.) 22 28 20 24 30 Hình 29: Xóa khóa 18: mượn khóa (trường hợp 1) Spring 2017 Data structure & Algorithm 49 Bài luyện tập Ví dụ Hãy xây dựng B-cây 3-nhánh từ dãy {4, 3, 5, 1, 2, 7, 9, 8, 15, 11, 12, 16} I Xóa nút 8, 16 I Thêm nút 6, 17 Spring 2017 Data structure & Algorithm 50 Định lý chiều cao B-cây Định lý Gọi n (n ≥ 1) số phần tử hay khóa B-cây m (m > 2) bậc h chiều cao h ≤ logm Spring 2017 n+1 Data structure & Algorithm (4) 51 Đánh giá B-cây Phân tích chi phí thực theo n (số lượng nút cây) tìm phần tử thêm phần tử xóa phần tử xấu ? ? ? trung bình ? ? ? tốt ? ? ? Phân tích chi phí nhớ theo n (số lượng nút cây) Spring 2017 Data structure & Algorithm 52 Tài liệu tham khảo Spring 2017 Data structure & Algorithm 53 ... Algorithm khóa 30 B -cây (cont.) Ký hiệu số B -cây thông dụng B -cây m-nhánh ký hiệu I I B -cây b? ??c m    Hoặc m−1 + 1, m Một số B -cây phổ biến I B -cây b? ??c (2, 3) 2-3 I B -cây b? ??c (2, 4) 2-3-4 Spring... B? ?i luyện tập Ví dụ Hãy xây dựng 3-nhánh từ dãy {4, 3, 5, 1, 2, 7, 9, 8, 15, 11, 12,16} I Xóa nút 8, 16 I Thêm nút 6, 17 Spring 2017 Data structure & Algorithm 27 B- CÂY B -cây Giới thiệu I B -cây. .. Giới thiệu I B -cây Rudolf Bayer, Edward M McCreight phát minh cân tổng quát I I B -cây phù hợp cho hệ thống đọc ghi liệu lớn Nó thường dùng sở liệu hệ thống tập tin B -cây sử dụng tối thiểu thao

Ngày đăng: 25/03/2023, 07:21