Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
363,08 KB
Nội dung
www.kenbon.net BÀI 7: CÂY 2-3-4 Giới thiệu 2-3-4 Chúng ta xem xét đặc tính 2-3-4 mối quan hệ gần gũi 23-4 đỏ-đen Hình trình bày 2-3-4 đơn giản Mỗi node lưu trữ 1, mục liệu Hình 2-3-4 Các số 2, cụm từ 2-3-4 có ý nghĩa khả có liên kết đến node có node cho trước Đối với node khơng phải lá, có cách xếp sau: Một node với mục liệu ln ln có Một node với hai mục liệu ln ln có Một node với ba mục liệu ln ln có Như vậy, node phải ln ln có số node nhiều so với số mục liệu Nói cách khác, node với số k số mục liệu d, : k = d + 1 www.kenbon.net Hình trường hợp 2-3-4 Với node khơng có node chứa 1, mục liệu, khơng có node rỗng Một 2-3-4 có đến nên gọi nhiều nhánh bậc Trong 2-3-4 node có liên kết, trừ node (node khơng có liên kết nào) Hình trình bày trường hợp 2-3-4 Một node với liên kết gọi 2node, node với liên kết gọi 3-node, node với liên kết gọi 4-node, khơng có node 1-node Tổ chức 2-3-4 Các mục liệu node xếp theo thứ tự tăng dần từ trái sang phải (sắp xếp từ thấp đến cao) Trong tìm kiếm nhị phân, tất node bên trái có khố nhỏ khóa node xét tất node bên phải có khố lớn khóa www.kenbon.net node xét Trong 2-3-4 nguyên tắc giống trên, có thêm số điểm sau: Tất node có gốc node thứ có giá trị khố nhỏ khoá Tất node có gốc node thứ có giá trị khoá lớn khoá nhỏ khoá Tất node có gốc node thứ có giá trị khoá lớn khoá nhỏ khoá Tất node có gốc node thứ có giá trị khoá lớn khoá Trong 2-3-4, nút nằm mức Các node mức thường không đầy đủ, nghĩa chúng chứa mục liệu thay mục Lưu ý 2-3-4 cân Nó giữ cân thêm vào phần tử có thứ tự (tăng dần giảm dần) Tìm kiếm Thao tác tìm kiếm 2-3-4 tương tự thủ tục tìm kiếm nhị phân việc tìm kiếm node gốc chọn liên kết dẫn đến với phạm vi giá trị phù hợp Ví dụ, để tìm kiếm mục liệu với khố 64 hình 1, bạn gốc Tại node gốc khơng tìm thấy mục khố Bởi 64 lớn 50, đến node 1, (60/70/80)(lưu ý node nằm bên phải, việc đánh số node liên kết bắt đầu từ bên trái) Tại vị trí khơng tìm thấy mục liệu, phải đến node Tại 64 lớn 60 nhỏ 70 nên tiếp đến node Tại thời điểm tìm mục liệu cho với liên kết 62/64/66 www.kenbon.net Thêm vào Các mục liệu luôn chèn vào node Nếu mục liệu thêm vào node mà có node con, số lượng node cần thiết phải biến đổi để trì cấu trúc cho cây, lý phải có số node nhiều so với mục liệu nút Việc thêm vào 2-3-4 trường hợp trình bắt đầu cách tìm kiếm node phù hợp Nếu khơng có node đầy (node có đủ mục liệu) bắt gặp trình tìm kiếm, việc chèn vào dễ dàng Khi node phù hợp tìm thấy, mục liệu đơn giản thêm vào Hình trình bày mục liệu với khoá 18 thêm vào 23-4 Việc chèn vào dẫn đến phải thay đổi vị trí hai mục liệu node khố nằm với trật tự sau mục liệu thêm vào Trong ví dụ số 23 phải đẩy sang phải để nhường chỗ cho 18 www.kenbon.net Hình Chèn vào không làm tách (i) trước chèn vào (ii) sau chèn vào Tách nút Việc thêm vào trở nên phức tạp gặp phải node đầy (node có số mục liệu đầy đủ) nhánh dẫn đến điểm thêm vào Khi điều xảy ra, node cần thiết phải tách Quá trình tách nhằm giữ cho cân Loại 2-3-4 mà đề cập thường gọi 2-3-4 top-down node tách theo hướng xuống điểm chèn Giả sử ta đặt tên mục liệu node bị phân chia A, B C Sau tiến trình tách (chúng ta giả sử node bị tách node gốc; kiểm tra việc tách node gốc sau này): Một node (rỗng) tạo Nó anh em với node tách đưa vào bên phải Mục liệu C đưa vào node www.kenbon.net Mục liệu B đưa vào node cha node tách Mục liệu A không thay đổi Hai node bên phải bị hủy kết nối từ node tách kết nối đến node ( Một cách khác để mô tả tách node 4-node tách thành hai 2-nút) Một ví dụ việc tách node trình bày hình Hình 4: Tách nút (i ) Trước chèn vào (ii) Sau chèn vào Tách node gốc Khi gặp phải node gốc đầy thời điểm bắt đầu tìm kiếm điểm chèn, kết việc tách thực sau: Node tạo để trở thành gốc cha node tách www.kenbon.net Node thứ hai tạo để trở thành anh em với node tách Mục liệu C dịch đưa sang node anh em Mục liệu B dịch đưa sang node gốc Mục liệu A không đổi Hai node bên phải node phân chia bị hủy kết nối khỏi kết nối đến node bên phải Hình 4.5 Tách node gốc i) Trước thêm vào ii) Sau thêm vào Hình việc tách node gốc Tiến trình tạo node gốc mức cao mức node gốc cũ Kết chiều cao tổng thể tăng lên Đi theo node tách này, việc tìm kiếm điểm chèn tiếp tục xuống phía Trong hình mục liệu với khoá 41 thêm vào phù hợp Tách theo hướng xuống www.kenbon.net Chú ý rằng, tất node đầy tách đường xuống nên việc tách node khơng gây ảnh hưởng phải ngược lên Node cha node bị tách phải đảm bảo node đầy, để đảm bảo node cha chấp nhận mục liệu B mà khơng cần thiết phải tách Tất nhiên node cha có hai node bị tách, trở thành node đầy Tuy nhiên điều có nghĩa bị tách lần tìm kiếm gặp Hình trình bày loạt thao tác chèn vào rỗng Có node tách, node gốc node Thêm vào 70, 30, 50 30, 50, 70 Thêm 40 Thêm vào 20, 80 Thêm vào 25, 90 Thêm vào 75 www.kenbon.net Thêm vào 10 Hình Minh họa thêm node vào 2-3-4 Biến đổi 2-3-4 sang Đỏ-Đen Một 2-3-4 biến đổi sang đỏ-đen cách áp dụng luật sau: Biến đổi 2-node 2-3-4 sang node đen đỏ-đen Biến đổi 3-node sang node C (với hai nó) node cha P (với node C node khác) Khơng có vấn đề mục trở thành node mục khác thành node cha C tô màu đỏ P tô màu đen Biến đổi 4-node sang node cha P hai node C1, C2 màu đỏ Hình 4.7 trình bày chuyển đổi Các node tô màu đỏ; tất node khác tơ màu đen www.kenbon.net Hình Chuyển đổi từ 2-3-4 sang đỏ-đen 10 www.kenbon.net Hình 4.8 trình bày 2-3-4 đỏ-đen tương ứng với cách áp dụng chuyển đổi Các đường chấm xung quanh tạo từ 3-node 4-nút Các luật đỏ-đen tự động thoả mãn với chuyển đổi Kiểm tra rằng: Hai node đỏ không kết nối, số lượng node đen đường dẫn từ gốc đến (hoặc node null) 11 www.kenbon.net Hình 4.8 Cây 2-3-4 đỏ-đen tương ứng 12 ... node Thêm vào 70, 30 , 50 30 , 50, 70 Thêm 40 Thêm vào 20 , 80 Thêm vào 25 , 90 Thêm vào 75 www.kenbon.net Thêm vào 10 Hình Minh họa thêm node vào 2- 3- 4 Biến đổi 2- 3- 4 sang Đỏ-Đen Một 2- 3- 4 biến đổi... liệu đơn giản thêm vào Hình trình bày mục liệu với khố 18 thêm vào 23 -4 Việc chèn vào dẫn đến phải thay đổi vị trí hai mục liệu node khố nằm với trật tự sau mục liệu thêm vào Trong ví dụ số 23 ... mục liệu cho với liên kết 62/ 64/ 66 www.kenbon.net Thêm vào Các mục liệu luôn chèn vào node Nếu mục liệu thêm vào node mà có node con, số lượng node cần thiết phải biến đổi để trì cấu trúc cho cây,