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

Cấu trúc dữ liệu và giải thuật chapter05 adt red black tree

25 1 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

CẤU TRÚC DỮ LIỆU CÂY ĐỎ ĐEN Bùi Tiến Lên 01/01/2017 Cây đỏ đen Định nghĩa 1 Cây đỏ đen (red black tree) được Rudolf Bayer phát minh và là một cây nhị phân tìm kiếm có các đặc điểm sau 1 Mọi nút phải l[.]

CẤU TRÚC DỮ LIỆU CÂY ĐỎ ĐEN Bùi Tiến Lên 01/01/2017 Cây đỏ đen Định nghĩa Cây đỏ đen (red black tree) Rudolf Bayer phát minh nhị phân tìm kiếm có đặc điểm sau Mọi nút phải nút đỏ nút đen Nút gốc nút đen Nếu nút nút đỏ, phải nút đen Tất đường từ nút gốc đến nút-0 (khơng có con) nút-1 (có con) phải có số lượng nút đen (điều kiện cân bằng) Nhận xét Cây đỏ đen tổng quát AVL Spring 2017 Data structure & Algorithm Cây đỏ đen (cont.) 13 17 11 15 25 22 27 Hình 1: Cây đỏ đen Spring 2017 Data structure & Algorithm Cấu trúc liệu cho nút đỏ đen Cấu trúc liệu để lưu trữ cho nút đỏ đen 10 template struct RBNode { T data; int key; NodeColor color; RBNode *pLeft; RBNode * pRight ; RBNode * pParent ; }; Spring 2017 Data structure & Algorithm Tìm kiếm duyệt I Vì đỏ đen nhị phân tìm kiếm, tìm kiếm duyệt đỏ đen tương tự nhị phân tìm kiếm Spring 2017 Data structure & Algorithm Các phép biến đổi đỏ đen cân Có ba phép biển đổi dùng để điều chỉnh cho đỏ đen cân I Thay đổi màu (change color ) I Thực xoay trái (left rotation) I Thực xoay phải (right rotation) Spring 2017 Data structure & Algorithm Các phép biến đổi đỏ đen cân (cont.) Thực xoay trái hai nút P N ; đó, N nút phải P P T1 N N T2 T3 P T3 T1 (a) trước xoay T2 (b) sau xoay Hình 2: Thao tác xoay trái Spring 2017 Data structure & Algorithm Các phép biến đổi đỏ đen cân (cont.) Thực xoay phải hai nút P N ; đó, N nút trái P P T3 N T1 N T1 T2 P T2 (a) trước xoay T3 (b) sau xoay Hình 3: Thao tác xoay phải Spring 2017 Data structure & Algorithm Thêm nút vào đỏ đen I Sử dụng thuật toán thêm nhị phân tìm kiếm để thêm nút I Nút thêm luôn màu đỏ I Duyệt từ nút vừa thêm trở gốc để hiệu chỉnh cân lại Spring 2017 Data structure & Algorithm Các tình xảy duyệt ngược I Trường hợp 1: Nút xét N nút gốc có màu đỏ N T1 N T2 T1 (a) trước hiệu chỉnh T2 (b) sau hiệu chỉnh Hình 4: TH1 → Đổi màu nút N thành màu đen Dừng hiệu chỉnh Spring 2017 Data structure & Algorithm 10 Các tình xảy duyệt ngược (cont.) I Trường hợp 2: Nút xét N nút đỏ nút cha P nút đen P T3 N T1 T2 Hình 5: TH2 → Dừng hiệu chỉnh Spring 2017 Data structure & Algorithm 11 Các tình xảy duyệt ngược (cont.) I Trường hợp 3: Nút xét N nút đỏ nút cha P nút đỏ gốc P T3 N T1 P T3 N T2 T1 (a) trước hiệu chỉnh T2 (b) sau hiệu chỉnh Hình 6: TH3 → Đổi màu nút P thành đen Dừng hiệu chỉnh Spring 2017 Data structure & Algorithm 12 Các tình xảy duyệt ngược (cont.) I Trường hợp 4: Nút xét N nút đỏ nút cha P nút U nút đỏ G G U P T3 N T1 T4 T2 U P T5 T3 N T1 (a) trước xử lý T4 T5 T2 (b) sau xử lý Hình 7: TH4 → Đổi màu P U thành đen, đổi màu G thành đỏ Tiếp tục xét nút G Spring 2017 Data structure & Algorithm 13 Các tình xảy duyệt ngược (cont.) I Trường hợp 5: Nút xét N nút đỏ nút cha P , G T4 P T3 N T1 P T2 N T1 (a) trước xử lý G T2 T3 T4 (b) sau xử lý Hình 8: TH5 (T4 rỗng gốc nút đen) → Đổi màu P thành đen, G thành đỏ, xoay P G Dừng hiệu chỉnh Spring 2017 Data structure & Algorithm 14 Các tình xảy duyệt ngược (cont.) I Trường hợp 6: Nút xét N nút đỏ nút cha P , G T4 P T1 N N T2 P T3 T1 (a) trước xử lý G T2 T3 T4 (b) sau xử lý Hình 9: TH6 (T4 rỗng gốc nút đen) → Đổi màu N thành đen, G thành đỏ, xoay N P , xoay N G Dừng hiệu chỉnh Spring 2017 Data structure & Algorithm 15 Các tình xảy duyệt ngược (cont.) I I Một số trường hợp lại đối xứng trường hợp xét Sinh viên liệt kê trường hợp Spring 2017 Data structure & Algorithm 16 Các tình xảy duyệt ngược (cont.) Bài tập Sinh viên cho biết thay đổi sau xử lý I Số nút đen I Số nút đỏ I Số lượng nút đen đường từ gốc đến nút I Chiều cao Spring 2017 Data structure & Algorithm 17 Minh họa thêm phần tử 11 11 7 14 15 14 15 8 (a) trước thêm (b) sau thêm Hình 10: Thêm nút Spring 2017 Data structure & Algorithm 18 Minh họa thêm phần tử (cont.) 11 11 14 15 14 15 (a) trước xử lý (b) sau xử lý Hình 11: Trường hợp Spring 2017 Data structure & Algorithm 19 Minh họa thêm phần tử (cont.) 11 7 14 15 11 (a) trước xử lý 14 15 (b) sau xử lý Hình 12: Trường hợp Spring 2017 Data structure & Algorithm 20 ... 17 11 15 25 22 27 Hình 1: Cây đỏ đen Spring 2017 Data structure & Algorithm Cấu trúc liệu cho nút đỏ đen Cấu trúc liệu để lưu trữ cho nút đỏ đen 10 template struct RBNode { T data;...Cây đỏ đen Định nghĩa Cây đỏ đen (red black tree) Rudolf Bayer phát minh nhị phân tìm kiếm có đặc điểm sau Mọi nút phải nút đỏ nút đen... (b) sau xoay Hình 3: Thao tác xoay phải Spring 2017 Data structure & Algorithm Thêm nút vào đỏ đen I Sử dụng thuật toán thêm nhị phân tìm kiếm để thêm nút I Nút thêm luôn màu đỏ I Duyệt từ nút vừa

Ngày đăng: 25/03/2023, 08:39

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w